第一: 设置cell的选中背景颜色
第一步:在cellForRow 方法里面 设置选中的颜色
cell.selectedBackgroundView = [[UIView alloc] initWithFrame:cell.frame];
cell.selectedBackgroundView.backgroundColor = SELECTED_BACKGROUND_COLOR;
第二步:返回页面的时候取消选中有两种方法
方法一: 在 didSelectRowAtIndexPath 中设置
[tableView deselectRowAtIndexPath:indexPath animated:YES];
方法二: 在 viewWillAppear
[self.tableView deselectRowAtIndexPath:[self.tableView indexPathForSelectedRow] animated:YES];
注:当cell上门放置的有小控件 设置背景色后,选中后控件的背景色也变量
处理方法:
- (void)setHighlighted:(BOOL)highlighted animated:(BOOL)animated{
[super setHighlighted:highlighted animated:animated];
_cellLeavealLabel.backgroundColor = [UIColor colorWithHex:0xffa80f alpha:1];
}
第二: iOS开发 - 让tableView不能下拉刷新,可以上拉加载
刚刚被问到如题的问题,索性试了下,主要是设置tableView的bounces属性,默认为YES,可上下出现弹性区,需要写在scrolView的代理方法中:
-(void)scrollViewDidScroll:(UIScrollView *)scrollView
{
NSLog(@"%f",_tableView.contentOffset.y);
if (_tableView.contentOffset.y <= 100) {
_tableView.bounces = NO;
}
else
{
_tableView.bounces = YES;
}
}
第三: iOS11适配 tableView顶部多一块 cell高度错误
问题一:
之前的estimatedSection******Height默认为0,现在不为0了,直接写第一部分代码也可以,或者不设置estimatedSection,把代码2两个代理补上也行,看自己选择,本质原因就是因为默认值问题,这两种方式都可以解决这个默认值问题
代码1
if (@available(iOS 11.0, *)) {
self.tableView.contentInsetAdjustmentBehavior = UIScrollViewContentInsetAdjustmentNever;
// est和代理 可选1个
self.tableView.estimatedSectionFooterHeight = 0;
self.tableView.estimatedSectionHeaderHeight = 0;
} else {
self.automaticallyAdjustsScrollViewInsets = NO;
}
代码2
- (UIView *)tableView:(UITableView *)tableView viewForFooterInSection:(NSInteger)section
{
return nil;
}
- (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section
{
return nil;
}
问题二:
cell高度出现高度重合问题(cell的默认高度 44 不在起作用)
self.tableView.estimatedRowHeight = 0;
网友评论