【问题标题】:Keep expanded UITableViewCell fixed on top保持展开的 UITableViewCell 固定在顶部
【发布时间】:2014-11-04 04:36:32
【问题描述】:

我已经实现了 SKSTableView 并且我使用了这个命令:

[tableView scrollToRowAtIndexPath:indexPath atScrollPosition:UITableViewScrollPositionTop animated:YES];

当我按下一个可展开的单元格时,它就会出现在顶部。现在我希望当我滚动展开的单元格时,它会一直固定在那里直到它关闭。我可以这样做吗?

【问题讨论】:

    标签: ios objective-c uitableview xcode5


    【解决方案1】:

    在 UITableView 你有 UIScrollView 方法。所以你可以这样做:

    -(void)scrollViewDidScroll:(UIScrollView *)scrollView {
    
        UITableViewCell *cell =[self.myTableView cellForRowAtIndexPath:[NSIndexPath indexPathForRow:0 inSection:0]];
        CGRect cellFrame = [cell convertRect:cell.frame toView:self.view];
    
        if (self.isStickToTop) {
            self.cell.frame = CGRectMake(0, 0, self.cellFrame.width, cellFrame.size.height);
        }
    
        else {
            self.cell.frame = CGRectMake(0, scrollView.contentOffset.y, self.cellFrame.width, cellFrame.size.height);
        }        
    }
    

    isStickToTop您的维护BOOL变量,它将指示单元格是否粘在顶部。不要说你不知道;)

    【讨论】:

    • 我不知道为什么,但是这个方法没有被触发:(我不是说我不知道​​,但是如果你也扩大你的帮助那就太好了:D谢谢非常喜欢:D
    • 你应该在 UITableViewDelegate, UITableViewDataSource 中添加这行代码
    • 问题是当我添加:self.tableView.delegate = self;我的单元格不会扩展,因为我已经设置了这个:self.tableView.SKSTableViewDelegate = self;你有什么建议?
    • 我终于设法解决了这个委托问题,并像这样编辑了这段代码: if (self->isStickToTop) { cell.frame = CGRectMake(0, 0, cellFrame.size.宽度,cellFrame.size.height); } else { cell.frame = CGRectMake(0, scrollView.contentOffset.y, cellFrame.size.width, cellFrame.size.height);但它不起作用,它会在顶部生成一个空白单元格,但它仍然可以滚动,它不会固定在那里。 :(
    猜你喜欢
    • 2023-04-05
    • 2020-08-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-16
    • 2015-04-03
    • 1970-01-01
    相关资源
    最近更新 更多