布局技巧

随着 H5 的普及,目前应用中会越来越多地出现 H5 页面和 OC 控件的混合排版

  • 混合排版技巧
    • 取消 webView.scrollView 的滚动
    • 利用 KVO 监听 scrollViewcontentSize 变化
- (void)viewDidLoad {
    [super viewDidLoad];

    // 取消滚动功能
    self.webView.scrollView.scrollEnabled = false;
    // KVO 监听高度变化
    [self.webView.scrollView addObserver:self forKeyPath:@"contentSize" options:0 context:nil];

    NSURL *url = [NSURL URLWithString:@"http://m.baidu.com"];
    NSURLRequest *request = [NSURLRequest requestWithURL:url];
    [self.webView loadRequest:request];
}

// 取消监听
- (void)dealloc {
    [self.webView.scrollView removeObserver:self forKeyPath:@"contentSize"];
}

- (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context {

    if ([object isKindOfClass:[UIScrollView class]]) {
        UIScrollView *sv = (UIScrollView *)object;
        self.heightConstraint.constant = sv.contentSize.height + 34;
    }
}

results matching ""

    No results matching ""