如何在 UIScrollview 中重新排列和删除 UIView,例如在 iOS 主屏幕中重新排列的应用程序
Posted
技术标签:
【中文标题】如何在 UIScrollview 中重新排列和删除 UIView,例如在 iOS 主屏幕中重新排列的应用程序【英文标题】:How to Rearrange and delete UIViews in UIScrollview like apps rearranging in iOS Home screen 【发布时间】:2014-10-13 06:35:27 【问题描述】:我在 UIScrollview 中有一些 UIView,并在滚动视图中添加了一个页面控制器。 是否可以使用拖放操作删除视图并重新排列视图,例如在 ios 主屏幕中重新排列的应用程序?
请提供一些指导或参考。 提前致谢。
【问题讨论】:
***.com/questions/13519302/… 【参考方案1】:我猜你必须在删除视图之后运行循环。
假设有 20 个视图并且您要删除第 11 个视图,那么您必须从第 12 个视图循环到第 20 个视图并将它们重新排列到前一个视图的框架中。
在这种情况下,您必须将所有子视图存储在 NSMutableArray 中。
另一种最佳方式
您可以使用UICollectionView
删除或删除UICollectionView
中的任何项目,它会自动重新排列所有视图的位置。
UICollectionView
的教程请查看以下链接
您只需调用以下代码即可删除UICollectionView
的项目
[self.collectionView deleteItemsAtIndexPaths:[NSArray arrayWithObject:indexPath]];
A Springboard-Like Layout With the UICollectionView Class
【讨论】:
【参考方案2】:要实现 iPhone 的主屏幕功能,您应该只使用一个对象来捕捉用户的触摸。
而你想要实现的,叫做GridView
你可以用关键字研究http://cocoacontrols.com:grid
这是学习如何做到这一点的最佳示例:https://github.com/gmoledina/GMGridView
【讨论】:
以上是关于如何在 UIScrollview 中重新排列和删除 UIView,例如在 iOS 主屏幕中重新排列的应用程序的主要内容,如果未能解决你的问题,请参考以下文章
如何从 UIScrollView 中删除 CAShapeLayer?