【问题标题】:iPhone 4 to iPhone 5 - toolbar doesn't move to the bottomiPhone 4 到 iPhone 5 - 工具栏没有移到底部
【发布时间】:2012-11-14 18:24:55
【问题描述】:

我有一个专为 iPhone 4 设计的应用程序。该应用程序有一个工具栏,它在 Interface Builder 中拖放到屏幕底部。在模拟器的 iPhone 5“设备”上进行测试时,工具栏不会自动转到屏幕底部。

我的问题是 - 是否有某种技巧或技术,可以让所有 UITables “伸展”以填充所有新的可用空间,并且无论连接到哪种 iPhone,工具栏都会移到底部?以编程方式执行此操作会很痛苦——那就是弄清楚我是哪种 iPhone,然后以编程方式重新定位所有 ui。如果这实际上是必须的,是否应该为 4 英寸视网膜设计任何新的 iPhone 应用程序,然后以编程方式缩小 iPhone 4 尺寸的所有内容,或者最好为 3.5 英寸设计,然后拉伸并按下工具栏以防万一是一款 4 英寸屏幕的 iPhone 5。

感谢您的任何意见..

【问题讨论】:

  • 这就是 AutoResizingMask 的作用,所有的 UIViews 和 UIViewControllers 都有它
  • AutoResizingMask 是我在 InterfaceBuilder 中设置的,还是我以编程方式添加的?
  • @geekyaleks 您可以通过编程方式或在 InterfaceBuilder 中设置它
  • 在 IB 中,您在视图大小信息下方看到的那些有趣的红色箭头。箭头表示视图的宽度或高度将如何相对于父视图的宽度和高度变化进行调整(同样相对于它最初的布局方式)。条形表示视图的位置将如何随着父视图的变化而变化(左边距是否固定?右边距是否固定?等)

标签: iphone uitableview toolbar


【解决方案1】:

如果您只使用 iOS 6,最简单的方法是使用 Auto Layout 并在 Interface Builder 中添加约束。约束将描述工具栏的底部边缘应该等于超级视图的底部边缘。您不必专门为单个设备编写代码。为了让 UITableView 伸展以填充所有可用空间,我再次建议使用 UIScrollView 上的约束(不是 UITableView,它位于滚动视图内)来描述此行为,例如滚动视图的上边缘应等于父视图的上边缘,左边缘应等于父视图的左边缘,下边缘应等于 UIToolbar 的顶部(在 IB 中,间距约束指定 UIToolbar 和 UIScrollView 之间的间距应等于 0)和右edge 应该等于 superview 的边缘。

如果不能使用约束,则使用 struts 和 springs 系统指定此行为,该系统利用视图上的 autoresizingMask 属性指定 UITableView 的父 UIScrollView 具有灵活的宽度和高度,而 UIToolbar 具有固定的高度和一个灵活的搭配。您可以通过设置它们各自的 frame 属性来手动定位 UIScrollView 和 UIToolbar,该属性描述左上边缘的 x、y 坐标以及视图的宽度和高度。

【讨论】:

  • 谢谢,无论是iPhone 5还是iPhone 4,我都让工具栏出现在底部。我需要解决表格视图...
猜你喜欢
  • 2012-09-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-09-29
  • 1970-01-01
  • 1970-01-01
  • 2016-11-20
相关资源
最近更新 更多