【问题标题】:Disable horizontal scrolling in UITextView在 UITextView 中禁用水平滚动
【发布时间】:2014-07-30 07:00:15
【问题描述】:

您好:我正在构建一个支持 iOS 6 及更高版本的应用程序。我在整个应用程序中有几个UITextViews,我注意到在 iOS 6 上,文本视图可以水平滚动。在 iOS 7 上,它们只能垂直滚动。有没有办法限制滚动,使其只能垂直滚动?

我检查了其他一些类似的问题,但我不想在UIScrollView 中添加UILabel

非常感谢任何帮助!

编辑

当使用以下两行时(根据建议的答案),设置内容插入时这仍然不起作用。有谁知道如何解决这个问题?

尝试禁用滚动:

tView.contentSize = CGSizeMake(tView.frame.size.width, tView.contentSize.height);
tView.showsHorizontalScrollIndicator = FALSE;

插图:

if (floor(NSFoundationVersionNumber) <= NSFoundationVersionNumber_iOS_6_1) {
      tView.contentInset = UIEdgeInsetsMake(kTextViewInsets, kTextViewInsets, kTextViewInsets, kTextViewInsets);
} else {
      tView.textContainerInset = UIEdgeInsetsMake(kTextViewInsets, kTextViewInsets, kTextViewInsets, kTextViewInsets);
}

【问题讨论】:

    标签: ios objective-c ios6 uiscrollview uitextview


    【解决方案1】:

    我会继承UITextView 并覆盖setContentOffset

    - (void)setContentOffset:(CGPoint)contentOffset
    {
        super.contentOffset = CGPointMake(0.0, // Ignore the passed offset. Could also use self.contentOffset.x
                                          contentOffset.y);
    }
    

    【讨论】:

    • 你能在 iOS 6 上测试这个吗?我刚刚意识到 Xcode 6 放弃了 iOS 6 模拟器...
    • 我的也掉了!
    • 嗯。知道如何在 iOS 6 sim 上运行应用程序吗?这个问题所涉及的应用程序仍然支持它,如果你的答案有效,我很乐意接受它并奖励赏金。
    • 您必须重新安装 Xcode 5。您可以安全地重命名它以保留两个版本。 developer.apple.com/downloads/index.action?name=Xcode
    • 刚刚安装了 Xcode 5 和 6.1 Sim。似乎无法在 10.10 上运行(模拟器启动但即使在重置后也拒绝加载 6.1)。猜猜没有真正的方法来测试这个。不过,如果我让它发挥作用,这个答案似乎是最有希望的。谢谢!
    【解决方案2】:

    试试这个 -

    mytextView.contentSize = CGSizeMake(mytextView.frame.size.width,HEIGHT_YOU_WANT);
    
    mytextView.showsHorizontalScrollIndicator = NO;
    

    也可以看看SO Question 可能对你有帮助。

    【讨论】:

    • 感谢您的回复!请看看我的编辑,这在设置内容插入时不起作用。
    • 我试过了,但还是没有运气。我还尝试对值进行硬编码。有什么想法吗?
    猜你喜欢
    • 1970-01-01
    • 2012-03-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多