美文网首页
tableView 小技巧

tableView 小技巧

作者: 致在路上的我们 | 来源:发表于2018-01-17 11:29 被阅读0次

1.tableview section头部不悬停
正常section不为0的时候,sectionheaderView会悬停在当前视图中,如QQ
解决办法

#pragma mark -- 头部悬停
- (void)scrollViewDidScroll:(UIScrollView *)scrollView {
    CGFloat sectionHeaderHeight = kViewHeightScaleOf6s(97);
    if (scrollView.contentOffset.y <= sectionHeaderHeight && scrollView.contentOffset.y >= 0) {
        scrollView.contentInset = UIEdgeInsetsMake(-scrollView.contentOffset.y, 0, 0, 0);
    } else if (scrollView.contentOffset.y >= sectionHeaderHeight) {
        scrollView.contentInset = UIEdgeInsetsMake(-sectionHeaderHeight, 0, 0, 0);
    }
}

2.tableView系统选中方法

self.tableview.allowsMultipleSelectionDuringEditing = YES;
self.tableview.editing = YES;

3.mj上拉加载重复加载问题

UIScrollView (MJRefresh)

- (void)setMj_footer:(MJRefreshFooter *)mj_footer
{
    if (mj_footer != self.mj_footer) {
        // 删除旧的,添加新的
        [self.mj_footer removeFromSuperview];
        [self insertSubview:mj_footer atIndex:0];
   // ios11 适配 关闭self-sizing
        if ([self isKindOfClass:[UITableView class]]) {
            UITableView *view = (UITableView *)self;
            view.estimatedRowHeight = 0;
            view.estimatedSectionHeaderHeight = 0;
            view.estimatedSectionFooterHeight = 0;
        }
        // 存储新的 
    [self willChangeValueForKey:@"mj_footer"]; // KVO
        objc_setAssociatedObject(self, &MJRefreshFooterKey,
                                 mj_footer, OBJC_ASSOCIATION_ASSIGN);
        [self didChangeValueForKey:@"mj_footer"]; // KVO
    }
}

4.ios11 用到tableview headerview 的时候需要用到下面的预估代码, 不用的话会出错

if (@available(iOS 11.0,*)) {
        [UIScrollView appearance].contentInsetAdjustmentBehavior = UIScrollViewContentInsetAdjustmentNever;
        
        //解决iOS11,仅实现heightForHeaderInSection,没有实现viewForHeaderInSection方法时,section间距大的问题
        [UITableView appearance].estimatedRowHeight = 0;
        [UITableView appearance].estimatedSectionHeaderHeight = 0;
        [UITableView appearance].estimatedSectionFooterHeight = 0;
}else{
        self.automaticallyAdjustsScrollViewInsets = NO;
    }

5.iphone_X适配:

// 判断是否是iPhone X
#define iPhoneX ([UIScreen instancesRespondToSelector:@selector(currentMode)] ? CGSizeEqualToSize(CGSizeMake(1125, 2436), [[UIScreen mainScreen] currentMode].size) : NO)
// 导航栏高度
#define KNAVIGATION_BAR_HEIGHT (iPhoneX ? 88.f : 64.f)
// 状态栏高度
#define KSTATUS_BAR_HEIGHT (iPhoneX ? 44.f : 20.f)
// tabBar高度
#define KTAB_BAR_HEIGHT (iPhoneX ? (83.f) : 49.f)
// 底部的高度
#define KBOTTOM_HEIGHT (iPhoneX ? 34.f : 0.f)

相关文章

  • tableView 小技巧

    1.tableview section头部不悬停正常section不为0的时候,section的headerVie...

  • tableView小技巧

    重写scrollView最上方的偏移量(默认向下偏移64) if([selfrespondsToSelector:...

  • TableView小技巧

    在项目的时候,发现一个问题就是在Cell上的控件有背景色时,用户选择了这个cell,这个cell上控件的背景色,会...

  • TableView简单小技巧

    1、使用tableview的分界线,但是界面下面有一些没有数据但是还是显示了分界线 2、去掉navigationi...

  • iOS 多选删除(附tableViewTips及单选删除)

    一、前言 这次分享并记录一下tableView的多选删除,并额外记录一下单选删除及tableView的设置小技巧。...

  • UI TableView几个小技巧

    1.UI TableView 重新定位 self.readsTableView.frame = CGRect(x:...

  • TableView 使用的小技巧

    01-去除tableView plain 样式 SectionHeaderView 的悬浮方法: 代码效果

  • TableView的常用小技巧

    tableView是iOS开发中最常用的元素之一,基本80%的界面都是以tableView为父视图布局的,下面总结...

  • tableView技巧

    添加索引条sectionIndex cell分割线 没有数据的cell不显示 高度自动计算 cell右侧小图标 t...

  • TableView技巧

    隐藏cell分割线_tableView.separatorStyle = NO; 让单元格之间有距离 设置分割线左...

网友评论

      本文标题:tableView 小技巧

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