我的应用程序在视图上绘制了一个字符串。我有另一个滑块控件,它以这种方式工作:当我更改滑块的值时,视图上的字符串也会更改。但是每次重新绘制字符串时,它似乎都会与旧字符串重叠并使字符串不清楚。
我的字符串绘制方法是这样的:
- (void)drawString:(NSString *)s withFont:(UIFont *)font inRect:(CGRect)contextRect {
CGFloat fontHeight = font.pointSize;
CGFloat yOffset = (contextRect.size.height - fontHeight) / 2.0;
CGRect textRect = CGRectMake(contextRect.origin.x, contextRect.origin.y + yOffset, contextRect.size.width, fontHeight);
[s drawInRect:textRect withFont:font lineBreakMode:NSLineBreakByClipping
alignment:NSTextAlignmentCenter];
}
然后在视图的 drawRect 方法中,我重写它来绘制字符串:
[self drawString:someDynamicStringChangedEachTimeTheSliderValueChanged withFont:[UIFont fontWithName:@"Helvetica" size:12.0] inRect:textRect];
然后在视图控制器中,我放置了滑块值更改事件
- (void)sliderValueChangedBy:(id)sender
{
if ([sender isKindOfClass:[UISlider class]]) {
..........
[myView setNeedsDisplay];
}
}
我发现经过几次值更改后,字符串变得模糊和重叠。我在这里错过了什么吗?