【问题标题】:IOS - Autoresizing views issue when shrinking too muchIOS - 缩小太多时自动调整视图的问题
【发布时间】:2012-12-07 21:03:51
【问题描述】:
我的视图内有我的子视图,并带有适当的 AutoresizingMask,以便它们在视图大小发生变化时相应地适应。
当视图缩小太多甚至没有缩小时,我的问题就出现了。子视图似乎忘记了它们原来的位置并开始放置在奇怪的位置或缩放太多或太小。
最初的要求是将视图“缩小”到其中心,然后像气球一样“弹出”,从〜=零大小到原始帧大小。
之前我在其他项目中缩小并弹出视图没有太大问题不知道是不是因为现在视图更复杂了
【问题讨论】:
标签:
ios
size
frame
transform
autoresize
【解决方案1】:
好吧,正如我所说,我之前已经这样做过,所以我只是检查了我的另一个项目,发现了我的问题,我在这里发布答案以与任何感兴趣的人分享知识,因为我之前无法在谷歌上搜索。
问题在于使用框架缩小或扩大视图并不是正确的方法。
不好的例子:
[UIView animateWithDuration: 0.4 delay:0 options: UIViewAnimationCurveEaseInOut animations:^{
self.frame = CGRectMake(frame.origin.x + frame.size.width/2, frame.origin.y + frame.size.height/2, 10, 10);
} completion: nil];
应该使用转换:
self.transform = CGAffineTransformScale(CGAffineTransformIdentity, 1, 1);
[UIView animateWithDuration: 0.4 delay:0 options: UIViewAnimationCurveEaseInOut animations:^{
self.transform = CGAffineTransformScale(CGAffineTransformIdentity, 0.001, 0.001);
} completion: nil];
上面将元素放在我缩小和扩大视图后它们应该放置的位置,考虑到这仅用于动画目的。
希望对你有帮助。