0

我的应用程序在视图上绘制了一个字符串。我有另一个滑块控件,它以这种方式工作:当我更改滑块的值时,视图上的字符串也会更改。但是每次重新绘制字符串时,它似乎都会与旧字符串重叠并使字符串不清楚。

我的字符串绘制方法是这样的:

- (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];

    }
}

我发现经过几次值更改后,字符串变得模糊和重叠。我在这里错过了什么吗?

在此处输入图像描述

4

0 回答 0