为了以编程方式在 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 中删除文本并且有时某些地方绘制的线也会被删除或淡出时,问题就来了。
我无法找到问题。如果有人有任何想法,请帮助我。
提前致谢