ios - UIButton 中的内容在动画之后移动

标签 ios cocoa animation uibutton frame

我的 UIButton 在动画播放后出现问题。让我解释一下这个步骤。

我有一个按钮,里面有一张图片。当我点击我的按钮时,我将框架设置为动画以获得更大的宽度,然后当我的框架尺寸合适时我添加我的文本(所以我的图像在左边,文本在右边)。
首先,当我开始动画时,我的图像完全在左侧,我不知道为什么,当我回到初始帧时,我的图像完全远离我的 UIButton,仍然没有不知道为什么:(

有一些屏幕可以做更多的解释:

http://pastebin.com/6MQ5xyA8 (对不起,没有 10 点信誉我不能粘贴超过一个链接)

这是我的代码:

// Extand
CGRect loginSize = self.nvButtonConnect.frame;
loginSize.size.width = 297;
loginSize.size.height = 48;
CABasicAnimation *sizeAnimation = [CABasicAnimation animationWithKeyPath:@"bounds"];
sizeAnimation.fromValue = [NSValue valueWithCGRect:self.nvButtonConnect.frame];
sizeAnimation.toValue = [NSValue valueWithCGRect:loginSize];
[sizeAnimation setRemovedOnCompletion:NO];
sizeAnimation.fillMode = kCAFillModeForwards;

// Go back (in another method)
CGRect loginSize = self.nvButtonConnect.frame;
loginSize.size.width = 48;
loginSize.size.height = 48;
CABasicAnimation *sizeAnimation = [CABasicAnimation animationWithKeyPath:@"bounds"];
sizeAnimation.fromValue = [NSValue valueWithCGRect:self.nvButtonConnect.frame];
sizeAnimation.toValue = [NSValue valueWithCGRect:loginSize];
[sizeAnimation setRemovedOnCompletion:NO];
sizeAnimation.fillMode = kCAFillModeForwards;

你有什么想法吗?
我尝试使用自定义 contentEdgeInset、TitleEdgeInset、ImageEdgeInset,似乎没有任何效果。

最佳答案

您正在将 frame 值设置为您的 bounds,这会取代 View 坐标系的原点。始终如一地使用 bounds,它应该可以工作。

关于ios - UIButton 中的内容在动画之后移动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16179089/

相关文章:

ios - UITableView 不显示图像

objective-c - 如果组合框动态添加了新的表格行,那么当 NSComboBox 选择发生更改时,我如何收到通知?

jquery - 用jquery制作 explode 动画

iphone - 我的一些 NSString 是字母数字的。如何判断哪些包含数字,哪些不包含数字?

iphone - cocos2d在游戏前添加 'ready-go!'动画

javascript - 动画结束时执行动画

ios - WatchKit 无效的捆绑结构 - WatchKitStub

ios - 照片选择器,选择后,图像太大

ios - 单元格不快速显示 subview

objective-c - NSCollectionView 使用自动布局自动调整 subview 的大小