更改UIScrollView中的内容

时间:2011-12-22 08:30:29

标签: iphone uiscrollview uibutton

寻找最佳方法: 我有一个标签栏和一个导航栏。在导航栏下面我放了三个按钮。 一个用于项目描述,下一个应该显示项目进度表,第三个应该显示项目任务。 在按钮下方,我有一个滚动视图的内容。 根据使用的按钮,切换/更改scrollview内容的最佳方法是什么?

3 个答案:

答案 0 :(得分:0)

我会构建3个不同的视图,当按钮点击清除滚动视图然后将新视图添加到滚动视图,然后调整滚动视图的内容大小。

答案 1 :(得分:0)

UITextView是UIScrollView的子类,因此自动实现滚动行为。您可以使用text属性设置显示的文本。

如果您要显示的内容不仅仅是文本内容,您可以通过编程方式创建自定义视图(或通过从NIB加载它),并在每次单击按钮时将其放入UIScrollView中。

答案 2 :(得分:0)

您可以使用scrollRectToVisible,如下所示:

 -(void)scrollToIndex(UIButton*)sender{

    UIButton *btn = (UIButton*)sender;
    NSInteger *index = btn.tag;
    CGRect rect = CGRectMake(CGRectGetWidth(self.contentScrollView.frame)*index, 0,    CGRectGetWidth(self.contentScrollView.frame), CGRectGetHeight(self.contentScrollView.frame));
    [self.contentScrollView scrollRectToVisible:rect animated:YES];

}     

}

现在,如果用户想要手动滚动视图,则可以处理其他选项:

- (void)scrollViewDidScroll:(UIScrollView *)sender {
    // Switch the currentDataView when more than 50% of the previous/next page is visible
    CGFloat pageWidth = sender.frame.size.width;
    int page = floor((sender.contentOffset.x - pageWidth / 2) / pageWidth) + 1;
    pageControl.currentPage = page;

   //You can also set the highlight of the button that relate to this view
}