[_articleTxtView setFont:[UIFont systemFontOfSize:_fontSizeInt]];
[_articleTxtView layoutIfNeeded];
[_articleTxtView sizeToFit];
通过按UIButton并负责更改UITextView的大小来触发上述代码。每次按下UIButton时,_fontSizeInt都会更改为更大的数字,UITextView
高度会相应更改。
问题是在完成setFont之前会调用layoutIfNeeded
和sizeToFit
,并在中间切换UITextView
。
可能的解决方案:
这个解决方案效果很好,但我不会使用这种不好的做法。
..
[_articleTxtView setFont:[UIFont systemFontOfSize:[DataManager sharedDataManager].fontSize]];
[self performSelector:@selector(test) withObject:nil afterDelay:0.01];
}
- (void)test
{
[_articleTxtView layoutIfNeeded];
[_articleTxtView sizeToFit];
}
我考虑使用下一个代码但由于某种原因它并不总是有用。此外,我不确定这是否正确使用动画块(实际上没有涉及动画):
[UIView animateWithDuration:0.4 animations:^()
{
[_articleTxtView setFont:[UIFont systemFontOfSize:[DataManager sharedDataManager].fontSize]];
}
completion:^(BOOL finished)
{
[_articleTxtView layoutIfNeeded];
[_articleTxtView sizeToFit];
}];
当UIView完成绘画加载时,有没有更好的方法让方法“知道”?
由于
答案 0 :(得分:0)
你可以在articleTxtView视图控制器类中实现viewDidLoad(一次调用)或viewWillAppear(每次都调用)