如何在移动时调整 UIView 的大小,就像 SnapGuide 一样?

Posted

技术标签:

【中文标题】如何在移动时调整 UIView 的大小,就像 SnapGuide 一样?【英文标题】:How to resize UIView while moving, just like SnapGuide? 【发布时间】:2012-12-22 07:15:03 【问题描述】:

我有一个滚动视图,它有几个向用户显示信息的 UIView。此滚动视图仅支持水平滚动,当用户开始从左到右或反之亦然滚动时,中心视图应该更大,上一个和下一个视图应该更小(如下图所示)。

我可以通过更改出现在滚动视图上的所有视图的框架来做到这一点。但动画并不流畅。我只想在滚动时根据它们的位置调整视图的大小。有没有办法做到这一点?非常感谢任何帮助。

【问题讨论】:

【参考方案1】:

你可以看看这些链接

UIScrollview make the current Image Larger

或者我可以通过 iCarousel 为您提供更好的解决方案。请参考它,我认为这可能会对您有所帮助,而且它也很容易集成:)

【讨论】:

完美,多年来我一直在寻找相同的东西。 BTW,你知道如何降低 Carousel 的速度吗? 是的,为什么不呢,你为什么不去看看 iCarousel 方法的文档呢,各种方法都有,特别是减速的方法:)..【参考方案2】:

这可能就是您正在寻找的CGAffineTransformScale。你需要设置你的 UIViews 转换属性,例如

CGAffineTransform transformRatio = CGAffineTransformScale(CGAffineTransformIdentity, factorX, factorY);
myView.transform = transformRatio;

factorXfactorY 是缩放视图宽度和高度的值。 当您的视图开始滚动进出时您需要设置相应的因素。

【讨论】:

以上是关于如何在移动时调整 UIView 的大小,就像 SnapGuide 一样?的主要内容,如果未能解决你的问题,请参考以下文章

使用 Transform 旋转时调整 UIView 的大小

悬停时调整图像大小使其他图像移动

以编程方式创建的 UILabel 未在旋转时调整大小

CollectionView 标头不会在自动旋转时调整大小

pygtk Child Label 在移动时调整固定容器的大小

界面方向改变时调整图层大小?