【问题标题】:More text and more blank at the bottom of UITextViewUITextView 底部有更多文字和更多空白
【发布时间】:2015-01-26 08:44:02
【问题描述】:

UITextView 在 UITableViewController 中的一个静态单元格中,并添加代码descriptionText.sizeToFit() 使单元格高度适合文本。

单元格在输入少量文本时工作正常,当获得更多文本时,单元格底部的空白也会变得更高。

我曾尝试添加代码descriptionText.contentInset = UIEdgeInsetsMake(0, 0, 0, 0),也不起作用。

有什么帮助吗?谢谢。

更新: 奇怪的事情,当在 ios8 上运行时,它仍然显示空白,但是当滚动到底部以便隐藏单元格,然后滚动回到顶部时,空白消失了!这意味着它可以正常工作。有什么问题?

【问题讨论】:

    标签: ios uitableview swift cell sizetofit


    【解决方案1】:

    您必须告诉视图不要自动调整插图:

    文档说:

    如果您不希望滚动视图的内容插入自动进行 调整后,自动将AdjustsScrollViewInsets 设置为NO。 (默认 automaticAdjustsScrollViewInsets 的值为 YES。)

    所以你必须在你的 viewDidLoad 中添加下面这行代码:

    self.automaticallyAdjustsScrollViewInsets = false;
    

    或者您可以直接覆盖automaticallyAdjustsScrollViewInsets - 方法并返回false

    【讨论】:

    • 我不得不说它也不起作用,尽管很多人说这个解决方案解决了顶部的空白。添加 self.automaticallyAdjustsScrollViewInsets = false 时,顶部的单元格甚至隐藏在导航栏下。你认为这是插入的问题吗?奇怪的是,文本可以增加空白。
    【解决方案2】:

    这是一种方法:通过计算每个 UITextView 的高度并在 heightForRowAtIndexPath: 方法中返回高度(如果需要,可以加上填充)。

    - (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
    {
        NSString *body = self.messages[indexPath.row];
        CGRect rect = [body boundingRectWithSize:CGSizeMake([width of your UITextViews], CGFLOAT_MAX) options:(NSStringDrawingUsesLineFragmentOrigin|NSStringDrawingUsesFontLeading) attributes:@{NSFontAttributeName:[UIFont fontWithName:@"HelveticaNeue" size:[Font Size]} context:nil];
        return rect.size.height;
    }
    

    【讨论】:

    • 没有。它不起作用。之前已经设置了约束,当我使用return UITableViewAutomaticDimension 时,它只显示无法显示整个文本的默认高度(30)。至此,单元格可以调整高度以显示整个文本,但也可以显示更多空白。 :-(
    • 我用另一种方法更新了我的答案。我自己用过这个,它应该可以工作。
    • 阿明,谢谢你的建议。运行代码时,首先我得到 'CGFLOAT_MAX' 不可用:使用 CGFloat.max,所以我使用 'height: 10000.0 代替。并且不能使用“|”迅速,所以只使用 .UsesLineFragmentOrigin。这是工作!但是...取决于字体大小。 IB中字体大小设置为14,为了获得更好的textview高度,代码中字体大小必须设置为12.5。虽然这是解决问题的更好方法,但我认为它不是最好的。
    • 暂时使用height/1.22处理。 :-(
    • 奇怪的事情,当在 ios8 上运行时,它仍然显示空白,但是当滚动到底部以便隐藏单元格,然后滚动回到顶部时,空白消失了!这意味着它可以正常工作。
    猜你喜欢
    • 2018-02-05
    • 1970-01-01
    • 2015-04-22
    • 2017-07-08
    • 2022-08-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多