1. 程式人生 > >iOS tableViewCell展示 UIWebView載入所有內容後禁止滾動

iOS tableViewCell展示 UIWebView載入所有內容後禁止滾動

是這樣 cell 展示一個網頁所有內容然後撐開cell重新整理cell高度, 然後禁掉滾動事件。這樣完美實現一個自適應高度的html/富文字樣式。

// 賦值部分 NSUserDefaults 高度儲存 寫在cell裡面

NSUserDefaults *user = [NSUserDefaultsstandardUserDefaults];

    if ([user objectForKey:webHight]) {

self.webviewHight.constant = [NSStringstringWithFormat:@"%@", [user objectForKey:webHight]].floatValue;

        self.webView.delegate = nil;

        [user removeObjectForKey:webHight];

        [user synchronize];

    }else{

        self.webView.delegate  = self;

    }

UIScrollView *first_tempView  = (UIScrollView *)[self.webView.subviewsobjectAtIndex:0];

    first_tempView.scrollEnabled = NO;

#pragma mark ----------------------- webView 代理 載入完後獲取高度 ------------------------

- (void)webViewDidFinishLoad:(UIWebView *)webView

{

// 獲取webView的高度

CGFloat webViewHeight = [[self.webViewstringByEvaluatingJavaScriptFromString:@"document.body.scrollHeight"] floatValue];

NSUserDefaults *user = [NSUserDefaultsstandardUserDefaults];

    [user setObject:[NSStringstringWithFormat:@"%f",webViewHeight]

forKey:webHight];

    [user synchronize];

// 發通知告訴tableview 重新整理 tableView接收通知然後reloaddata就可以了

    [selfsendMessage];

}

#pragma mark ----------------------- 獲取高度去重新整理 ------------------------

-(void)sendMessage

{

//建立通知

NSNotification *notification =[NSNotificationnotificationWithName:rechNotifyNameobject:niluserInfo:nil];

//通過通知中心傳送通知

    [[NSNotificationCenterdefaultCenter] postNotification:notification];

}

#pragma mark ----------------------- 更新高度通知 tableView 裡面 ------------------------

-(void)getnote{

//註冊通知

    [[NSNotificationCenterdefaultCenter] addObserver:selfselector:@selector(tongzhi:) name:rechNotifyNameobject:nil];

}

- (void)tongzhi:(NSNotification *)text{

    [_tableViewreloadData];

}

// 移除監聽的事件

-(void)viewWillDisappear:(BOOL)animated

{

    [superviewWillDisappear:animated];

    [[NSNotificationCenterdefaultCenter] removeObserver:selfname:rechNotifyNameobject:nil];

}