UITextView如何禁用带有内容插入的水平滚动

Posted

技术标签:

【中文标题】UITextView如何禁用带有内容插入的水平滚动【英文标题】:UITextView how disable horizontal scrolling with content inset 【发布时间】:2013-01-23 17:42:51 【问题描述】:

我以编程方式创建了 UITextview,我需要在文本中设置一些左边距。我这样做:

myTextView.contentInset = UIEdgeInsetsMake(0.0, 5.0, 0.0, 0.0);

这个工作,但现在我有水平滚动。 我尝试将contentSize 设置为小于我的文本视图框架(它等于 320 pt)。

这个

myTextView.contentSize = CGSizeMake(300.0, 39.0);

不要帮忙。

我需要为文本设置左边距并且只设置垂直滚动。

【问题讨论】:

【参考方案1】:

使用 textContainerInset (ios 7.0+) 代替 contentInset

myTextView.textContainerInset = UIEdgeInsetsMake(0.0, 5.0, 0.0, 0.0);

【讨论】:

【参考方案2】:

使用自定义插图,我发现对我来说最好的解决方案是将 UITextView 子类化,然后在 layoutSubviews 中调用以下代码。

-(void) layoutSubviews

    // always keep content offset at x = 0
    self.contentOffset = CGPointMake(0, self.contentOffset.y );
    [super layoutSubviews];

希望这对某人有所帮助。我还将这个答案发布到https://***.com/a/24027310/2661613

【讨论】:

以上是关于UITextView如何禁用带有内容插入的水平滚动的主要内容,如果未能解决你的问题,请参考以下文章

添加文本和禁用滚动时如何使 UITextView 字段扩展?

如何在 iOS 中制作单行水平滚动 TextView

图片宽度超过视口宽度时如何禁用水平滚动?

如何启用垂直滚动的滚动条并禁用水平滚动?

如何禁用表格视图的水平滚动? [复制]

UITextView 代表禁用滚动