要以编程方式在textview中创建行,我已实现以下代码:
- (void)drawRect:(CGRect)rect{
CGContextRef ctx = UIGraphicsGetCurrentContext();
[super drawRect:rect];
CGSize textSize = [alpha sizeWithFont:[UIFont fontWithName:@"FreeHand575" size:28.0]
constrainedToSize:self.contentSize lineBreakMode:NSLineBreakByCharWrapping];
NSUInteger height = textSize.height;
textSize = [self.text sizeWithFont:self.font constrainedToSize:self.contentSize
lineBreakMode:NSLineBreakByCharWrapping];
NSUInteger contentHeight = (rect.size.height > textSize.height) ?
(NSUInteger)rect.size.height : textSize.height;
NSUInteger offset = height;
CGContextSetRGBStrokeColor(ctx, .8, .8, .8, 1);
for(int i=offset;i < contentHeight;i+=height) {
CGPoint lpoints[2] = { CGPointMake(0, i), CGPointMake(rect.size.width, i) };
CGContextStrokeLineSegments(ctx, lpoints, 2);
}}
它工作得很好。但问题是当用户从textview中删除文本时,某些地方绘制的行也会被删除或淡出。
我无法找到问题。如果有人有想法请帮助我。
提前致谢
答案 0 :(得分:0)
您可以在主图层下方为textview添加一个图层,并在其上绘制线条。这样绘图文本(或删除)不会影响线条。 阅读here以了解如何在图层上绘图,请参阅“CALayer和自定义绘制内容”。