出于性能原因(在我的子类UITableViewCell
内),我正在尝试直接使用drawRect
绘制文字,而不是添加UILabel
子视图。
为了在更改方向时重新绘制文本,我将视图的contentMode
设置为UIViewContentModeRedraw
:
- (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];
}
滚动现在要快得多,而且一切都很完美 - 几乎。
问题是:当视图为其界面方向旋转动画设置动画时,文本显示为扭曲/拉伸。它在方向前后看起来很棒,但在动画期间。
有没有办法阻止视图拉伸,并且基本上模仿UILabels旋转界面时的行为方式?
答案 0 :(得分:2)
试试UIViewContentModeTopLeft
。这就是我在我的应用程序中以相同的情况解决它的方式。这将阻止缩放。 (见https://stackoverflow.com/a/3456973/1445366)。