Witam Pracuję z nowym interfejsem API TextKit
dla systemu iOS7 i próbuję utworzyć UITextView
o nieregularnym kształcie. Do tej pory mam w kontrolerze widoku:Przykład NSTextContainer o nieregularnym kształcie?
-(void) loadView
{
self.view = [[UIView alloc] initWithFrame:CGRectMake(0,0,320,548)];
NSTextStorage *textStorage = [[NSTextStorage alloc] init];
NSLayoutManager *layoutManager = [[NSLayoutManager alloc] init];
[textStorage addLayoutManager: layoutManager];
BaseTextContainer *textContainer = [[BaseTextContainer alloc] initWithSize:CGSizeMake(100, 100)];
[layoutManager addTextContainer: textContainer];
BaseTextView *textView = [[BaseTextView alloc] initWithFrame:CGRectMake(110,124, 100, 100) textContainer:textContainer];
textView.backgroundColor = [UIColor blueColor];
textView.editable = YES;
[self.view addSubview:textView];
}
potem w moim podklasy NSTextContainer
, chcę mieć mutablePath
rysowane jako kształcie kontenera tekstu, ale nie wiem, jak tego dokonać. Mam:
- (BOOL) isSimpleRectangularTextContainer
{
return NO;
}
- (void) drawLayer:(CALayer *)layer inContext:(CGContextRef)ctx
{
NSLog(@"TEST");
CGContextRef context = ctx;
CGSize layerSize = layer.frame.size;
CGAffineTransform transform = CGAffineTransformMakeScale(layerSize.width/self.initialSize.width, layerSize.height/self.initialSize.height);
CGMutablePathRef newGraphicMutablePath = CGPathCreateMutableCopyByTransformingPath(self.mutablePath, &transform);
CGContextAddPath(context, newGraphicMutablePath);
CGPathRelease(newGraphicMutablePath);
CGContextSetFillColorWithColor(context, [UIColor redColor].CGColor);
CGContextDrawPath(context, kCGPathFill);
}
Po prostu trochę nie rozumiem, jak to zrobić. Nie mogę znaleźć żadnego przykładu z NSTextContainer
o nieregularnym kształcie.
Co ma być nieregularne, marginesy tekstu lub granicy rysowane wokół niego? Na przykład napisałem przykład, w którym tekst jest ograniczony okrągłym marginesem. Czy o to Ci chodziło? – matt
@matt - Próbuję uzyskać tekst pasujący do owalnego kształtu, podobnie jak dymek. –
Zamiast tego zamiast widoku tekstowego polecam użyć zestawu tekstowego do bezpośredniego narysowania tekstu. – matt