如何在 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 会更改其子视图框架

如何从 UIScrollView 中删除 CAShapeLayer?

在 Pandas 中读取、选择和重新排列列

WPF开发为按钮提供添加,删除和重新排列ListBox内容的功能

UIScrollView 删除子视图动画

UICollectionview删除项目重新排列奇怪的动画