1. TableView中的Cell根据展示内容自适应高度
在NewsCenterTableViewCell.m中根据控件(UILabel、UIView、UIImageView等)改变cell的高度frame.size.height,然后在实现delegate中返回cell高度的方法中获取cell,并返回高度,来达到自适应的效果。
自定义的cell中:
//自适应cell高度
CGRect frame = self.frame;
frame.size.height = bgView.frame.size.height + 64;
self.frame = frame;
VC中:
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
{
//获取cell高度并返回
NewsCenterTableViewCell *cell = (NewsCenterTableViewCell *)[self tableView:_tbView cellForRowAtIndexPath:indexPath];
return cell.frame.size.height;
}
2.获取到所在的tableView
多用于自定义cell中。
- (UITableView*)myTableView{
for (UIView* next = [self superview]; next; next = next.superview) {
UIResponder* nextResponder = [next nextResponder];
if ([nextResponder isKindOfClass:[UITableView class]]) {
return (UITableView*)nextResponder;
}
}
return nil;
}
3. tableview滑动到固定行且该行在tableView中显示的位置
- (void)scrollToRowAtIndexPath:(NSIndexPath *)indexPath atScrollPosition (UITableViewScrollPosition)scrollPosition animated:(BOOL)animated;
滑动到某一行NSIndexPath,UITableViewScrollPosition代表想要这一行显示在当前TableView中的位置。
//滑到最后一行并且在tableView中显示在底部
[self.tableView reloadData];
[self.tableView scrollToRowAtIndexPath:[NSIndexPath indexPathForRow:[dataArr count]-1 inSection:0] atScrollPosition: UITableViewScrollPositionBottom animated:YES];
//滑到第0行并且在tableView中显示在顶部
[self.tableView reloadData];
[self.tableView scrollToRowAtIndexPath:[NSIndexPath indexPathForRow:0 inSection:0]
atScrollPosition: UITableViewScrollPositionTop animated:YES];
4. 刷新具体的某个组(section=0)
NSIndexSet * index = [[NSIndexSet alloc] initWithIndex:0];
[self.tableView reloadSections:index withRowAnimation: UITableViewRowAnimationNone];
5. 刷新具体的某一行(section=0,row = 3)
NSIndexPath *indexPath=[NSIndexPath indexPathForRow:3 inSection:0];
[tableView reloadRowsAtIndexPaths:[NSArray arrayWithObjects:indexPath,nil] withRowAnimation:UITableViewRowAnimationNone];
6. cell点击不变色
cell.selectionStyle = UITableViewCellSelectionStyleNone;//cell点击不变色
7. 去掉cell的分割线
tableView.separatorStyle = UITableViewCellSelectionStyleNone;//去掉cell的分割线
8. 自定义cell的点击状态的背景色
在加载cell的方法中设置自定义背景色
//自定义cell的点击背景色
tableCell.selectedBackgroundView = [[UIView alloc] initWithFrame:tableCell.frame];
tableCell.selectedBackgroundView.backgroundColor =AB_Color_f6f6f6;
在点击cell的回调方法中设置cell的点击状态将背景色还原
[atableView deselectRowAtIndexPath:indexPath animated:YES];//cell点击过立马恢复颜色













网友评论