Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/113.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios UIButton setTitle:longerTitle for状态:收缩标题字符串_Ios_Uibutton_Autolayout_Uikit - Fatal编程技术网

Ios UIButton setTitle:longerTitle for状态:收缩标题字符串

Ios UIButton setTitle:longerTitle for状态:收缩标题字符串,ios,uibutton,autolayout,uikit,Ios,Uibutton,Autolayout,Uikit,我正在尝试使用设置UIButton的标题 [按钮集标题:更改标题用于状态:uicontrol状态正常]标题正在正确更改,但在内部,这似乎是由UIButton设置的动画,当从长标题更改为短标题时,UIButton标签上似乎有一个布局传递,带有基于最终字符串长度的intrinsicContentSize,但在UIButton标签中的文本之前已经改变了。结果是,在设置短标题之前,我可以在ui按钮中看到长标题的瞬间收缩。 例如 开始: loooongtiiitle 在淡入淡出过程中,动画将变为几秒钟:

我正在尝试使用设置UIButton的标题
[按钮集标题:更改标题用于状态:uicontrol状态正常]
标题正在正确更改,但在内部,这似乎是由UIButton设置的动画,当从长标题更改为短标题时,
UIButton
标签上似乎有一个布局传递,带有基于最终字符串长度的
intrinsicContentSize
,但在
UIButton
标签中的文本之前已经改变了。结果是,在设置短标题之前,我可以在
ui按钮中看到长标题的瞬间收缩。
例如

开始:

loooongtiiitle

在淡入淡出过程中,动画将变为几秒钟:

Lon…tle

在以下地点着陆前:

Short

我没有在视图上做任何其他动画,并且已经能够在一个新的项目中重新创建这个效果,除了一个带有一个按钮的视图之外,什么都没有


这是UIKit错误还是我做错了什么

如果您添加延迟,使您在点击按钮期间不更改按钮标签,则更容易看到这种现象:

@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;
    });
}

我想说,继续,提交一份bug报告。

你能发布测试项目吗?谢谢你看@matt,我已经把它放在github上了,也许我只是不敏感,但我没有看到问题所在。我看到点击-淡入-重新出现的新标题,正如人们所期待的。你可以看到它时,在模拟器与缓慢的动画切换。好吧,这是真的!但是生活并不是生活在模拟机中,缓慢的动画切换。谢谢。我知道这是一个相当微妙的错误,不会破坏任何人的一天,但我想我应该把它放在那里,以防我做了什么蠢事。我将提交一份bug报告,但我不会屏住呼吸等待修复。苹果有很多更重要的bug需要首先修复。