col*_*ash 4 cocoa-touch objective-c uitextview ios
在iOS 8上(我还没有在iOS 7上测试过)我UITextView在故事板中设置了它的文本.当视图实际出现时,文本显示为滚动,我不希望它滚动.事实上,我不知道为什么会这样.任何人都可以解释如何更改此行为,以便它显示滚动到顶部,因为它应该?
这非常容易重现:
UITextView带约束以将其粘贴到边距它立即在视觉上很明显,但如果您记录正在发生的事情,您将看到如下内容:
2015-03-10 10:34:47.198 ScrollViewTest[61180:2610445] [Inside viewDidLoad] <UITextView: 0x7f9c79851200; frame = (0 0; 600 600); text = 'Lorem ipsum dolor sit er ...'; clipsToBounds = YES; autoresize = RM+BM; gestureRecognizers = <NSArray: 0x7f9c78c89df0>; layer = <CALayer: 0x7f9c78c8c220>; contentOffset: {0, 0}; contentSize: {600, 592}>
2015-03-10 10:34:47.288 ScrollViewTest[61180:2610445] [Inside viewDidAppear] <UITextView: 0x7f9c79851200; frame = (0 0; 375 667); text = 'Lorem ipsum dolor sit er ...'; clipsToBounds = YES; autoresize = RM+BM; gestureRecognizers = <NSArray: 0x7f9c78c89df0>; layer = <CALayer: 0x7f9c78c8c220>; contentOffset: {0, 457.5}; contentSize: {375, 1176}>
Run Code Online (Sandbox Code Playgroud)
据推测,这是因为从故事板的初始负载到需要显示的实际尺寸的变化frame和/或contentSize变化.
这看起来类似于UITextView contentOffset设置,但该问题的接受答案不起作用.设置也无法解决这个问题self.automaticallyAdjustsScrollViewInsets = NO.
我的猜测是,当应用自动布局时,内容偏移会被破坏.这恰好在-layoutSubviews执行之前发生.
所以要解决这个问题,我可以推荐两个解决方案.
UITextView,并设置contentOffset在-layoutSubviews.-viewDidLayoutSubviews到视图控制器并contentOffset为其设置任何文本视图.这些都是一种hacky变种,但是比ha -viewDidAppear:或者更好的hacky变通办法dispatch_async().
注意:小心,以确保您只调整contentOffset中-layoutSubviews或-viewDidLayoutSubviews在适当的时候.
| 归档时间: |
|
| 查看次数: |
2289 次 |
| 最近记录: |