ボタンの幅のサイズ変更をアニメーション化するのに問題があります。これは私のコードです:
- (IBAction)profileButtonPressed:(UIButton *)sender {
UIImage *buttonProfileDefault = [[UIImage imageNamed:@"Profile_Button_Default"] resizableImageWithCapInsets:UIEdgeInsetsMake(3, 3, 3, 3)];
[sender setBackgroundImage:buttonProfileDefault forState:UIControlStateNormal];
UIImage *buttonProfileDefaultDown = [[UIImage imageNamed:@"Profile_Button_Default_Down"] resizableImageWithCapInsets:UIEdgeInsetsMake(3, 3, 3, 3)];
[sender setBackgroundImage:buttonProfileDefaultDown forState:UIControlStateHighlighted];
[sender setTitle:@"LOG OUT" forState:UIControlStateNormal];
sender.titleLabel.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight;
sender.imageView.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight;
// Animate
CGRect originalFrame = sender.frame;
originalFrame.size.width = sender.frame.size.width+60;
[UIView animateWithDuration:1.5 animations:^{
sender.frame = originalFrame;
}];
}
ボタンの幅は変更されますが (タイトルを変更するコードを削除しない限り)、アニメーション化することはできません。
何が間違っているのでしょうか?
アップデート
そのため、幅の変更をアニメーション化することができましたが、setTitle をアニメーション セクションに配置しましたが、テキスト自体の適切な幅が得られません (下の画像)。どうすればこれを実現できますか?
解決
そのため、uibutton をプログラムで配置することになりました。自動レイアウトが問題を引き起こしているようです。
それは私だけですか、それとも Objective C では多くのことが不器用ですか?!