微信朋友圈的布局很容易,網(wǎng)上類似的代碼也很多,但是評(píng)論功能有些細(xì)節(jié)的地方要考慮,主要是為了用戶體驗(yàn)。
類似鍵盤(pán)不要遮擋評(píng)論框,評(píng)論框隨著內(nèi)容的增多變長(zhǎng)這些網(wǎng)上的處理方法很多,這里就不列出來(lái)了。
微信朋友圈只要按了評(píng)論,對(duì)話框升起來(lái)正好是落在了這條狀態(tài)的正下方,這個(gè)小細(xì)節(jié)有著非常好的用戶體驗(yàn),這種實(shí)現(xiàn)方式有很多,下面來(lái)說(shuō)說(shuō)我實(shí)現(xiàn)的方法。
我的方法是,按下評(píng)論按鈕的時(shí)候先把按鈕所在的cell的尾部的位置坐標(biāo)y保存下。
self.replyViewDraw = [cell convertRect:cell.bounds toView:self.view.window].origin.y + cell.frame.size.height;
然后在鍵盤(pán)升起來(lái)的時(shí)候,評(píng)論框也升起到鍵盤(pán)上方,此時(shí)鍵盤(pán)的位置坐標(biāo)y減去上方保存的位置y,就是tableView需要移動(dòng)的位置。
評(píng)論框移動(dòng)的方法:更改frame.origin.y
tableview移動(dòng)的方法:更改contentOffset.y
[UIView animateWithDuration:[dic[UIKeyboardAnimationDurationUserInfoKey] floatValue] animations:^{ [UIView setAnimationCurve:[dic[UIKeyboardAnimationCurveUserInfoKey] doubleValue]]; CGRect frame = self.replyInputView.frame; frame.origin.y = frame.origin.y - keyboardRect.size.height + 52; self.replyInputView.frame = frame; CGPoint point = self.familyTableView.contentOffset; point.y -= (frame.origin.y - self.replyViewDraw); self.familyTableView.contentOffset = point; }];


朋友圈的功能基本上都實(shí)現(xiàn)了,不少細(xì)節(jié)也都考慮了,大家感興趣的話可以下載下來(lái)看看,歡迎指正交流
github地址:https://github.com/stevenxiaoyang/familyGroup
新聞熱點(diǎn)
疑難解答
圖片精選
網(wǎng)友關(guān)注