【问题标题】:Static UITableView on iPhone 5iPhone 5 上的静态 UITableView
【发布时间】:2012-11-29 05:16:26
【问题描述】:

我的应用程序的主屏幕是一个带有一些选项的静态表格视图。对于新的 iPhone 5,我必须处理屏幕底部的额外空间:我想根据屏幕尺寸增加单元格的高度,并因此缩放其中的标签字体大小。有没有办法只使用自动布局来做到这一点?如果不是最好的方法是什么?

【问题讨论】:

    标签: uitableview height iphone-5 autolayout


    【解决方案1】:

    我认为针对 iPhone 5 分辨率拉伸表格视图的单元格不是一个好习惯。他们给你更多像素的原因是让用户可以看到更多的屏幕。

    如果你坚持这样做,你可以在你的表格视图委托方法中设置行高,使用[[UIScreen mainScreen] bounds].size.height检查屏幕高度是否为568点(iPhone 5高度):

    // sets the height for a row based on indexPath
    - (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath {
    
        // check if the iPhone 5 is used by using the screen height
        BOOL isIPhone5Used = ([[UIScreen mainScreen] bounds].size.height == 568.0f);
    
        // set the height to a larger number for iPhone 5 rows
        return (isIPhone5Used ? 50.0f : 44.0f); // this sets a height of 50 for iPhone 5 rows, and 44 for all other iPhones
    
    }
    

    如果您对不同的行使用不同的高度,您应该根据indexPath 对其进行自定义。或者,如果所有行的高度相同,则返回一个值。

    【讨论】:

    • 我同意你的观点,但不幸的是,屏幕使用静态表格来显示仪表板,在 4'' 模式下,它显示了一个非常烦人的空白区域,因为我没有更多元素要显示。跨度>
    • 你认为我可以使用自动布局来设置单元格内的标签字体大小还是我应该为它写一些?
    • 我认为通过将静态表格视图转换为动态表格视图,然后使用tableView: heightForRowAtIndexPath:,您将拥有更简洁、更易于管理的代码。
    • 您确定需要使用 UITableView 显示所有内容吗?如果您尝试完全填满屏幕,添加一些带有您需要的对象的 UIView 子类可能会更好。并且可以针对任何手机分辨率将它们设置为 AutoSize。
    • 我知道,但这是一个移植,我们已经有很多代码。下一个应用程序我肯定会使用子视图来布局我的静态屏幕。你知道AutoLayout约束是否可以根据垂直约束调整UILabel的大小吗?
    猜你喜欢
    • 1970-01-01
    • 2013-02-21
    • 1970-01-01
    • 2010-09-29
    • 1970-01-01
    • 2012-04-24
    • 1970-01-01
    • 1970-01-01
    • 2011-01-16
    相关资源
    最近更新 更多