1

出于性能原因(在我的子类UITableViewCell中),我正在尝试直接使用 绘制文本drawRect,而不是添加UILabel子视图。

为了在方向改变时重绘文本,我将视图设置contentModeUIViewContentModeRedraw

- (id)initWithFrame(CGRect)frame
{
    self = [super initWithFrame:frame];
    if (self) {
        [self setContentMode:UIViewContentModeRedraw];
    }
    return self;
}

- (void)drawRect:(CGRect)rect
{
    [@"foo" drawInRect:CGRectInset(rect, 10, 10)
              withFont:[UIFont systemFontOfSize:14]
         lineBreakMode:NSLineBreakByWordWrapping];
}

现在滚动速度要快得多,而且一切正常 -几乎.

问题是:当视图为其界面方向的旋转动画制作动画时,文本出现了warped/stretched。它在定向前后看起来很棒,但在动画过程中却很不稳定。

有什么办法可以防止视图拉伸,并且基本上模仿UILabels在界面旋转时的行为方式?

4

1 回答 1

2

试试UIViewContentModeTopLeft。这就是我在我的应用程序中以相同情况解决它的方法。这将防止缩放。(见https://stackoverflow.com/a/3456973/1445366)。

于 2013-05-29T18:58:30.720 回答