美文网首页iOS难点总结
UITableview 常见问题

UITableview 常见问题

作者: 乡水情缘 | 来源:发表于2017-11-23 14:09 被阅读18次

第一: 设置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;

相关文章

网友评论

    本文标题:UITableview 常见问题

    本文链接:https://www.haomeiwen.com/subject/snrzvxtx.html