【问题标题】:Content in UIButton moving after animationUIButton 中的内容在动画后移动
【发布时间】:2013-04-17 05:49:22
【问题描述】:

我的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,似乎没有任何效果。

【问题讨论】:

  • 你有什么理由使用CABasicAnimation而不是常规动画块?

标签: ios cocoa animation uibutton frame


【解决方案1】:

您正在将frame 值设置为bounds,这将替换视图坐标系的原点。始终使用bounds,它应该可以工作。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-05-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-02-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多