我正在尝试使用UIButton设置标题
[button setTitle:changedTitle forState:UIControlStateNormal]
标题正在正确更改,但内部显示为UIButton动画,当从长标题更改为短标题时,UIButton
标签上似乎有{{1}的布局传递}基于最终字符串长度但在intrinsicContentSize
标签中的文本已更改之前。结果是我可以在设置短标题之前看到UIButton
中长标题的瞬间收缩。
例如
开始:
UIButton
在淡入淡出动画期间变得不到一秒钟:
LooooongTiiiiiiitle
降落前:
Lon...tle
我没有在视图上做任何其他动画,并且能够在新项目中重新创建此效果,只有一个UIButton的视图。
这是一个UIKit错误还是我做错了什么?
答案 0 :(得分:0)
这种现象实际上更容易看看你是否添加延迟,以便在点击按钮时不更改按钮标签:
@interface ViewController ()
@property (nonatomic,assign) BOOL longString;
@end
@implementation ViewController
- (IBAction)changeLabel:(UIButton *)sender {
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(1 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
NSString *text = self.longString ? @"aaaaaaaaaaaaaaaa": @"bbbbb";
[sender setTitle:text forState:UIControlStateNormal];
self.longString = !self.longString;
});
}
我会说继续并提交错误报告。