Swift 如何控制UITextView的右边距

Swift 如何控制UITextView的右边距,swift,uitableview,autolayout,uitextfield,Swift,Uitableview,Autolayout,Uitextfield,我试图使用interface builder中的约束为表视图单元格中的静态文本视图设计一个简单的布局。文本应延伸至整个屏幕,并在前缘和后缘留有标准边距 在iPhone上,它在纵向上看起来很好,但当设备旋转时,尽管受到限制,但在某些情况下,会出现比预期更大的右边距。这在第一对图像中可见,其中文本行在达到标准边距之前意外中断 在第二对图像中,视图顶部的右边距是正确的(20),但比其他位置的右边距大-在同一文本视图中 我有这个 tableView.rowHeight = UITable

我试图使用interface builder中的约束为表视图单元格中的静态文本视图设计一个简单的布局。文本应延伸至整个屏幕,并在前缘和后缘留有标准边距

在iPhone上,它在纵向上看起来很好,但当设备旋转时,尽管受到限制,但在某些情况下,会出现比预期更大的右边距。这在第一对图像中可见,其中文本行在达到标准边距之前意外中断

在第二对图像中,视图顶部的右边距是正确的(20),但比其他位置的右边距大-在同一文本视图中

我有这个

    tableView.rowHeight = UITableView.automaticDimension
    tableView.estimatedRowHeight = 600

建议似乎是——对所有边距都有限制,并且应该自动调整大小


如果我使用原子,然后重新开始构建视图,它通常会解决问题。这是调试视图的正常部分吗?

查看您的屏幕截图和您的关键评论,您在同一文本视图中获得了不同的右边距,在我看来,您的问题与视图或约束无关,而是与文本的布局有关

看起来您正试图在Interface Builder中设计一个巨大的属性字符串。那是行不通的。Interface Builder中的属性化字符串设计器不太适用,当然也不适用于扩展工作

正确的方法:以其他方式设计和显示属性文本。在启动时加载文件,并用代码填充接口。您可以使用CSS在HTML中设计文本并在WKWebView中进行布局,也可以使用RTF(或HTML)设计文本并将其加载为NSAttribute字符串并将其放入文本视图中。您甚至可以完全用代码从头开始将文本构造为NSMutableAttributedString!但是无论哪种方式,你都需要控制你的文本,这样你才能知道并控制它是什么,段落的边距是什么


从某种意义上说,这是基本MVC的失败。InterfaceBuilder是关于构建界面的:“这里有一个文本视图”。这是我的看法。进入文本视图的是模型:它是您的数据。不能在Interface Builder中设计数据。学习在代码中构造和显示属性文本或HTML。

您的标题是关于UITextField的。文本字段在哪里?UITextView-谢谢+很好,但问题仍然到处都是。您到底想知道什么?在这两组图像中,都有一个与约束不匹配的大右边距。尾部空间约束为带有默认边距的尾部superview。内容压缩阻力优先级设置为必需。但是,运行应用程序时,内容会被压缩,并且较大的右边距也不符合约束条件。在第二个运行的屏幕图像中,边距服从前两段的约束,但随后压缩文本并在同一文本视图中的“未经修改”下添加右边距。我的问题-如何调试这些约束问题。为什么投票失败?
    override func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat
{
    //        NSLog("Section %ld Row %ld", (long)[indexPath section], (long)[indexPath row]);
    return UITableView.automaticDimension
}