美文网首页资源
iOS UITableView/UITableViewCell相

iOS UITableView/UITableViewCell相

作者: 90de46ea2b08 | 来源:发表于2017-03-20 21:17 被阅读19次

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点击过立马恢复颜色

相关文章

网友评论

    本文标题:iOS UITableView/UITableViewCell相

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