我的应用在视图上绘制一个字符串。我有另一个滑块控件,它以这种方式工作:当我更改滑块的值时,视图上的字符串也会更改。但每次重新绘制字符串时,它似乎与旧字符串重叠并使字符串不清楚。
我的字符串绘制方法是这样的:
- (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];
}
}
我发现在数值改变几次后,字符串变得模糊并重叠。我在这里错过了什么吗?