【问题标题】:Align table cells to bottom in IOS5在IOS5中将表格单元格与底部对齐
【发布时间】:2012-02-13 15:36:51
【问题描述】:

我有一个 UITableViewController,其中一个部分上有 3 个静态单元格。我想将整个表格对齐到底部,而不是顶部。我试图在 Xcode 中设置几个设置位无法解决它。我该怎么做?

更新:所以,这是我想要的对齐方式,单元格是红色的:

谢谢

【问题讨论】:

  • 将整个表格对齐到....屏幕的底部?那些按钮?其他观点?
  • 将整个表格对齐到屏幕底部,整个屏幕上有一个表格视图控制器。单元格不应位于顶部,而应位于底部。

标签: objective-c xcode ios5 uitableview storyboard


【解决方案1】:

如果您手动计算行的高度,您可以设置表格视图的contentInset(继承自UIScrollView)来下推行。如果您更改表格行,则必须手动更新插图。例如,如果所有行的高度相同:

CGFloat totalRowHeight = [self.tableView numberOfRowsInSection:0] * self.tableView.rowHeight;
CGFloat topInset = MAX(0, self.tableView.bounds.size.height - totalRowHeight);
self.tableView.contentInset = UIEdgeInsetsMake(topInset, 0, 0, 0);

【讨论】:

  • contentSize 可能会简化计算,可能是self.tableView.bounds.size.height - self.tableView.contentSize.height
【解决方案2】:

为表格视图的顶部内容插入使用较大的正值。这会将单元格向下推至您指定的位置。

【讨论】:

    【解决方案3】:

    您可以使用CGRect 定位表格并将其设置为UITableView's 框架属性。

    这是一个粗略示例:

    CGRect someFrame = CGRectMake(<x coordinate>, <y coordinate>, <width>, <height>);
    myTableView.frame = someFrame;
    

    我不清楚 buttom 和 top 对您的应用程序意味着什么。你的意思是在它的容器底部吗?整个屏幕的底部?

    如果您希望它位于其容器的底部,那么您可以这样做来计算新的 y 位置:

    CGFloat yPos = myTable.superview.frame.size.height-myTable.frame.size.height;
    

    编辑

    正如@robmayoff 建议的那样,表格的大小适合单元格。只需将 tableview 的高度设置为 44.0*3(单元格 x 3 单元格的默认高度)并使用上面的示例修改其 y 位置。

    【讨论】:

    • 例如如果您在 iPad 上看到内置的地图应用程序,您会看到一个 3 单元格选择器,您可以在其中选择地图模式(普通、卫星、混合)
    • 在我看来,Maps 应用程序中的表格视图的大小刚好足以显示其所有行,并且位于屏幕的底部边缘。我怀疑表格视图和屏幕一样高。
    猜你喜欢
    • 2017-07-23
    • 2012-03-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-05-22
    • 1970-01-01
    • 1970-01-01
    • 2017-06-12
    相关资源
    最近更新 更多