我有一些内容的滚动视图。加载内容后,我使用以下代码移动到滚动视图的顶部
[scrollViewCustom setContentOffset:CGPointMake(0.0, 0.0) animated:NO];
有效。有一个例外:
我有UITextView
。如果我向它添加一些文本,那么滚动视图永远不会回到这个代码的顶部。我必须手动滚动到顶部。
我甚至尝试在向UITextView
添加文字后添加相同的代码。
有人可以帮忙吗?感谢。
注意:所以,这是解决方案:
基本上UITextView
派生自UIScrollView
,因此,每当有某些文字时,它会尝试滚动以使文字可见。我已将UITextView
替换为UILabel
,它就像一个魅力!
答案 0 :(得分:0)
而不是
[scrollViewCustom setContentOffset:CGPointMake(0.0, 0.0) animated:NO];
使用
[scroll scrollRectToVisible:CGRectMake(0,0, 100,100) animated:NO];
答案 1 :(得分:0)
- (void)viewDidLoad{
scroll.contentSize=CGSizeMake(320, 400);
}
- (void)scrollViewToCenterOfScreen:(UIView *)theView {
CGFloat viewCenterY = theView.center.y;
CGRect applicationFrame = [[UIScreen mainScreen] applicationFrame];
CGFloat availableHeight;
availableHeight = applicationFrame.size.height - 300;
CGFloat z = viewCenterY - availableHeight / 2.0;
if (z < 0) {
z = 0;
}
[scroll setContentOffset:CGPointMake(0, z) animated:YES];
}
-(void)textViewDidBeginEditing:(UITextView *)textView{
[self scrollViewToCenterOfScreen:scroll];
}
- (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text
{
if (range.length==0) {
[scroll setContentOffset:CGPointMake(0, 0) animated:YES];
return NO;
}
}
答案 2 :(得分:0)
只需两步:
// define the area that is initially visible
scrollViewCustom.frame = CGRectMake(0, 5, 354, 500);
// then define how much a user can scroll it
[scrollViewCustom setContentSize:CGSizeMake(354, 960)];
In addition,clear the background color of scroll view to show the text.
scrollViewCustom.backgroundColor = [UIColor clearColor];