小编Nic*_*ski的帖子

奇怪的UITableView插入/删除行动画

在动画(UITableViewRowAnimationTop)的UITableView中插入/删除UITableViewCell时,我看到了一个奇怪的效果.

当要插入的单元格比上面的单元格大得多时,就会发生动画故障.

这个视频显示了模拟器中的故障,黄色单元突然出现在它应该从顶部滑动的地方.

是视频中的Xcode项目.

Bellow是细胞插入/动画代码.

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
    return 2 + self.thirdCellVisible;
}

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
    [tableView deselectRowAtIndexPath:indexPath animated:NO];

    if (indexPath.row == 1)
    {
        if (self.thirdCellVisible)
        {
            self.thirdCellVisible = !self.thirdCellVisible;
            [tableView deleteRowsAtIndexPaths:@[self.thirdCellIndexPath]
                             withRowAnimation:UITableViewRowAnimationTop];
        }
        else
        {
            self.thirdCellVisible = !self.thirdCellVisible;
            [tableView insertRowsAtIndexPaths:@[self.thirdCellIndexPath]
                             withRowAnimation:UITableViewRowAnimationTop];
        }
    }
}

- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
{
    if (indexPath.row == self.thirdCellIndexPath.row)
    {
        return 100.0f;
    }

    return 44.0f;
}
Run Code Online (Sandbox Code Playgroud)

animation uitableview ios

22
推荐指数
1
解决办法
4580
查看次数

UIView在动画块中忽略setHidden

我在UIView子类上有这个代码:

override var hidden: Bool {
    willSet {
        DDLogDebug("Will set hidden=\(String(newValue)) on \(item?.name))")
    }
    didSet {
        DDLogDebug("Did set hidden=\(String(hidden)) on \(item?.name))")
    }
}
Run Code Online (Sandbox Code Playgroud)

出于某种原因,我设置false但仍然true如下所示:

> Will set hidden=false on Optional("74D8E4CE-5E14-4914-8483-E9F66D2A79B7"))

> Did set hidden=true on Optional("74D8E4CE-5E14-4914-8483-E9F66D2A79B7"))
Run Code Online (Sandbox Code Playgroud)

这个问题的唯一特点是它只在UIView.animateWithDuration(...)块内运行时才会发生.如果我删除动画,则属性设置正确.

对可能发生的事情的任何想法?这让我发疯,呵呵

编辑:

多一点信息,这个我想隐藏的UIView是arrangedSubview一个UIStackView.它适用于前几次尝试,但突然停止工作,没有任何明显的模式.

hidden uiview ios swift uistackview

2
推荐指数
1
解决办法
406
查看次数

标签 统计

ios ×2

animation ×1

hidden ×1

swift ×1

uistackview ×1

uitableview ×1

uiview ×1