Objective c UITableView空间3个UITableViewCells均匀分布在整个设备框架上
我正在编写一个具有嵌套UITableView视图的应用程序。外部UITableView单元格中的UITableView旋转90度,以便水平滚动。主UITableView中的UITableViewCell属于HorizontalTableViewCell类Objective c UITableView空间3个UITableViewCells均匀分布在整个设备框架上,objective-c,ios,uitableview,Objective C,Ios,Uitableview,我正在编写一个具有嵌套UITableView视图的应用程序。外部UITableView单元格中的UITableView旋转90度,以便水平滚动。主UITableView中的UITableViewCell属于HorizontalTableViewCell类 UITableView -------------------------------------------------- | | |
UITableView
--------------------------------------------------
| | | |
| | | | HorizontalTableView
| > | > | > | (contained inside
| | | | UITableView's
| | | | UITableViewCell)
--------------------------------------------------
| | | |
| | | |
| > | > | > | |
| | | | \ /
| | | | "
--------------------------------------------------
| | | |
| | | |
| > | > | > |
| | | |
| | | |
--------------------------------------------------
在纵向模式下,我通过在initWithFrame:
方法中将HorizontalTableView的宽度设置为屏幕宽度,使内容间隔均匀
我想增加HorizontalTableView单元格的填充,这样当设备旋转到横向模式时,3个单元格的大小将调整为适合整个屏幕,每个单元格占用相同的空间
然而,我能达到的最好效果似乎是具有相同纵向宽度的水平表视图,但通过以下位掩码(来自水平表视图单元格的实现文件)在屏幕中居中:
这会在水平表格视图的两侧产生较大的边距,有效地使单元格居中,但单个单元格的填充保持不变
有没有关于我将如何着手做这件事的想法
(请注意,如果使用以下位掩码,则单元格会“通过HorizontalTableViewCell的顶部”飞出视图,并且即使设备旋转回纵向模式,也无法再次看到)
我能想到的唯一方法是为景观模式创建另一个视图。将数据放入holder对象,加载新视图,然后从holder重新加载数据。这正是我所担心的。。。我花了整整三个小时在这上面,却没有得到任何能产生预期效果的东西。不过,希望不会出现这种情况。实际上,我有一个应用程序,在tableviewcells中有TableView。这是太多的工作,使它旋转,所以我只是禁用旋转。你可能想试试这个策略,除非由于某种原因旋转是完全必要的。使它旋转并不太困难,但它看起来并不像它可能的那么好。。。如果没有好的方法来管理旋转时表格单元格的属性,我可以将其保持原样,因为我不想限制用户操纵应用程序方向的能力。等等,您是否使用自定义单元格?如果您没有,那么您可以尝试创建自己的单元格并设置自动调整大小属性。我正在主UITableView的单元格中为TableView使用自定义单元格,是的。
self.horizontalTableView.autoresizingMask =
UIViewAutoresizingFlexibleLeftMargin |
UIViewAutoresizingFlexibleRightMargin;
self.horizontalTableView.autoresizingMask = UIViewAutoresizingFlexibleWidth;