我正在尝试让我的滚动视图到达文本的底部,而不必强行滚动“#”。因此,当我向下滚动时,右边的滚动条会在我到达剩余文本的底部之前停止。然后我必须用力再次滚动(这样右边的滚动条缩小,显示剩余的文本)。希望有人遇到过这个。我不想强制滚动。我希望它以干净的方式显示。
UIScrollView *theScroll = [[UIScrollView alloc] initWithFrame:CGRectMake(0.0f, 0.0f, 320.0f, 568.0f)];
UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(17.0f, 150.0f, 286.0f, 568.0f)];
label.text = @" a very large portion of text ";
label.backgroundColor = [UIColor clearColor];
label.font = [UIFont fontWithName:@"Chalkduster" size:16.0];
label.lineBreakMode = NSLineBreakByWordWrapping;
label.numberOfLines = 0;
[label sizeToFit];
[theScroll setShowsVerticalScrollIndicator:NO];
theScroll.contentSize = CGSizeMake(theScroll.contentSize.width, label.frame.size.height);
[theScroll addSubview:label];
[self.view addSubview:theScroll];
这都是viewDidLoad
方法。
答案 0 :(得分:0)
有两件事似乎不对。
origin.y
设置为150
。你的意思是让标签从滚动视图的内容区域的顶部开始到目前为止吗?contentSize.height
设置为与标签的高度相同。这与#1冲突。对于所有内容,contentSize.height
应足够高。假设#1正确,#2应设置为:
theScroll.contentSize = CGSizeMake(theScroll.contentSize.width, CGRectGetMaxY(label.frame));
请记住,标签的底部将是其原点+高度,而不仅仅是它的高度。