OStack程序员社区-中国程序员成长平台

标题: ios - UIButton 中的内容在动画后移动 [打印本页]

作者: 菜鸟教程小白    时间: 2022-12-12 10:38
标题: ios - UIButton 中的内容在动画后移动

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



Best Answer-推荐答案


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

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






欢迎光临 OStack程序员社区-中国程序员成长平台 (https://ostack.cn/) Powered by Discuz! X3.4