UITableView Space 3 UITableViewCells在整个设备框架上均匀分布

时间:2012-06-22 14:06:12

标签: objective-c ios uitableview

我正在编写一个具有嵌套UITableViews视图的应用程序。外部UITableView单元格中的UITableViews旋转90度,以便它们水平滚动。主UITableView中的UITableViewCells属于Horizo​​ntalTableViewCell类。

                    UITableView
--------------------------------------------------    
|                |               |               |
|                |               |               | HorizontalTableView
|       >        |       >       |       >       | (contained inside
|                |               |               | UITableView's 
|                |               |               | UITableViewCell)
--------------------------------------------------
|                |               |               |
|                |               |               |
|       >        |       >       |       >       |   |
|                |               |               |  \ /
|                |               |               |   "
--------------------------------------------------
|                |               |               |
|                |               |               |
|       >        |       >       |       >       |
|                |               |               |
|                |               |               |
--------------------------------------------------      

在纵向模式下,通过将initWithFrame:方法中的Horizo​​ntalTableView宽度设置为屏幕宽度,我可以均匀地间隔内容。

我想增加Horizo​​ntalTableView单元格的单元格填充,这样当设备旋转到横向模式时,3个单元格会调整大小以适应整个屏幕,每个单元格占用相同的空间。

但是,我能看到的最好的是具有相同纵向宽度的Horizo​​ntalTableView,但是通过以下位掩码(来自Horizo​​ntalTableViewCell的实现文件)在屏幕中居中:

self.horizontalTableView.autoresizingMask = 
    UIViewAutoresizingFlexibleLeftMargin | 
    UIViewAutoresizingFlexibleRightMargin;

这会在Horizo​​ntalTableView的两侧产生很大的余量,有效地使细胞居中,但单个细胞填充保持不变。

关于如何做到这一点的任何想法?

(请注意,如果使用以下位掩码,则单元格将从“Horizo​​ntalTableViewCell的顶部”飞出视图,并且即使设备旋转回纵向模式也无法再次看到。)

self.horizontalTableView.autoresizingMask = UIViewAutoresizingFlexibleWidth; 

1 个答案:

答案 0 :(得分:0)

我能想到的唯一方法是为横向模式创建另一个视图。将数据放入持有者对象,加载新视图,然后从持有者重新加载数据。