在我的情况下,我遇到了一些被视为错误的事情。可能这不是一个错误,而是一个功能;)。
这是我的情况:
我用我的内容加载UIScrollView。视图加载后,我的内容的一部分被加载asynchrone。这很有效,没有问题。 但是,其中一些控件是UITextView控件。一旦我在viewDidLoad之后设置了这些控件的内容(文本属性),我的UIScrollView就会向下滚动到最后设置的UITextView。我想阻止这一点,并希望UIScrollView保持它的顶部滚动位置。
总结: 如果我在viewDidLoad方法中设置Text属性,则不会进行滚动。如果我在viewDidLoad方法之后在UITextView上设置Text属性(因为我将数据异步加载),UIScrollView将滚动到最后设置的UITextView。我想阻止这个滚动。
我如何实现这一目标?我有一种感觉,这只是一个设置错误的属性,但我似乎无法找到它。
提前致谢。
编辑:
我尝试在设置值之前将“scrollEnabled”属性设置为NO,然后设置为YES,但这没有任何效果。当设置UITextView的text属性时,ScrollView仍会滚动。
答案 0 :(得分:6)
我修复了解决问题的方法:
我将滚动视图内容大小设置为小的,如320 x 300或任何滚动视图框架的高度,然后完成我的工作,然后将内容大小恢复正常。
这可以防止在加载数据时滚动,并在加载完成后立即启用。
答案 1 :(得分:5)
答案 2 :(得分:1)
这也适合我:p但是我必须将高度设置为小于300的东西(在我的情况下,我只使用了10)。
基本上,我们的想法是让文本视图不是UIScrollView的可见区域的一部分,而是要更改UITextView的文本。