【问题标题】:how can I make iphone views layout auto resized and arranged如何使 iphone 视图布局自动调整大小和排列
【发布时间】:2012-04-03 08:33:06
【问题描述】:

在我的 iphone 应用程序中,我在一个带有框架的单元格中有两个 UITextView (65,22,210,25) (65,40,210,25) 我用我不知道它的长度的字符串填充这个文本视图(从数据库中检索它) 我的问题分为两部分:

1- 如果第一个 textview 超过其框架中的特定高度,它将超过第二个 textview

2- 当这些文本视图的高度变大时如何指定单元格的高度来容纳它们?我可以让单元格自动调整大小吗??

我目前对第一个问题的解决方案是重新排列 layoutSubviews 中的视图框架 对于第二个问题,我尝试计算 textviews 的新高度并将其传递给代表

-(CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath

有更好的解决方案吗?

【问题讨论】:

  • UITextView 的默认行为是如果文本大于其当前高度,它将自动添加滚动。

标签: iphone layout uitableview xcode4.2


【解决方案1】:

你的方法是正确的。您可以使用sizeWithFont:constrainedToSize:lineBreakMode: 确定文本大小,然后计算tableview:heightForRowAtIndexPath 处的单元格高度(请记住包括框架的Y 值)

更多代码可以看这里:UILabel with -[sizeWithFont:constrainedToSize:lineBreakMode] is cutting off words

【讨论】:

    【解决方案2】:

    你需要这样 在你的

    - (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
    

    传递一个可以容纳适当高度的textView 的高度。 然后在

    - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
    

    相应地调整textView 的高度,在上述两种方法中都使用sizeWithFont:constrainedToSize:lineBreakMode: 来确定所需的高度

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-12-16
      • 2012-08-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多