【问题标题】:In iOS App, how to scroll two UIView simultaneously在iOS App中,如何同时滚动两个UIView
【发布时间】:2015-04-13 17:40:43
【问题描述】:

我正在开发 iOS 应用。

我在 UIWebView 上添加 UITextView(100px height) 并希望它们同时滚动。

我正在写下以下代码。但是,当我滚动屏幕时,只有 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)];

}

【问题讨论】:

    标签: ios objective-c uiview scroll uiwebview


    【解决方案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;
        }
    }
    

    【讨论】:

    • 感谢您的快速回复。如果可能的话,你能告诉我示例代码吗?
    • 感谢您的回复。我做了上面的代码。当然,当向上滚动时,textview 的文本会在 textview 中上升,但是我想上升 textview 本身。有什么解决办法吗?
    • 我认为您的问题具有误导性。您应该将文本视图添加为 UIWebView 滚动视图的子视图。
    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-11-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-11-28
      • 2014-09-15
      • 1970-01-01
      • 2019-08-24
      相关资源
      最近更新 更多