在iOS App中,如何同时滚动两个UIView

时间:2015-04-13 17:40:43

标签: ios objective-c uiview scroll uiwebview

我正在开发iOS App。

我在UIWebView上添加了UITextView(100px高度),并希望它们能够同时滚动。

我正在写下面的代码。但是,当我滚动屏幕时,只滚动UIWebView而UITextView不滚动。(UITextView已修复!)

我希望当我向上滚动屏幕时,UIWebView和UITextView都会上升,反之亦然。

你能告诉我怎么解决吗?

@interface DetailViewController ()<UIWebViewDelegate>{
     UITextView *recommendText;
}

@property (weak, nonatomic) IBOutlet UIWebView *detailPage;

- (void)viewWillAppear:(BOOL)animated{
    [self headerMake];
}

-(void)headerMake{

    recommendText = [[UITextView alloc] initWithFrame:CGRectMake(0, 0, 320,100)];
    recommendText.layer.borderWidth = 2;
    recommendText.text = @"hogehoge";
    [self.detailPage addSubview:recommendText];

    [[self.detailPage scrollView] setContentInset:UIEdgeInsetsMake(100, 0, 0, 0)];

}

2 个答案:

答案 0 :(得分:1)

文本视图是滚动视图子类,Web视图具有scrollView属性。 收听滚动视图内容偏移量更改(使用scrollViewDidScroll:)并相应地更新其他滚动视图的内容偏移量。这将为您提供同时滚动两者的效果。

self.textview.delegate = self;
self.webview.scrollView.delegate = self;

...

- (void)scrollViewDidScroll:(UIScrollView *)scrollView
{
    if(scrollView == self.textview)
    {
        self.webview.scrollView.contentOffset = self.textview.contentOffset;
    }
    else
    {
        self.textview.contentOffset = self.webview.scrollView.contentOffset;
    }
}

答案 1 :(得分:0)

如果我正确理解你的问题你应该嵌入它们两个是滚动视图并禁用UIWebview和UITextView中的滚动。然后他们将滚动为一个。虽然您可能必须动态设置Textview和webview的大小,如果它们具有不同的内容,则必须支持。