gpt4 book ai didi

ios - 平移 UITableViewCell 时会显示什么 View ?

转载 作者:行者123 更新时间:2023-11-29 04:07:15 25 4
gpt4 key购买 nike

我正在平移 UITableViewCell contentView,如下面的代码所示。我想知道正在移动的 UITableViewCell contentView 后面存在的 View 是什么?

我问的原因是因为我想改变这个“显示 View ”的颜色。我想在滑动单元格时自定义每个 tableViewCell 下面的颜色。例如,如果向左滑动第三行,您会在单元格后面看到蓝色。如果向左滑动第四行,您会在单元格后面看到绿色。

- (void)panGestureRecognizer:(UIPanGestureRecognizer *)recognizer {

//...

if ((recognizer.state == UIGestureRecognizerStateBegan
|| recognizer.state == UIGestureRecognizerStateChanged)
&& [recognizer numberOfTouches] > 0) {

CGPoint location1 = [recognizer locationOfTouch:0 inView:self.tableView];
NSIndexPath *indexPath = [self.tableView indexPathForRowAtPoint:location1];
UITableViewCell *cell = [self.tableView cellForRowAtIndexPath:indexPath];

CGPoint translation = [recognizer translationInView:self.tableView];
cell.contentView.frame = CGRectOffset(cell.contentView.bounds, translation.x, 0);
}

//...
}

我尝试的一件事是创建一个 UIView 并将其添加到 contentView 后面的单元格中。这有效,但并不令我满意。如果您使用 UITableViewRowAnimationLeft 编写代码来设置单元格删除动画,则背景颜色将与单元格一起向左移动。这是有道理的,因为当动画将单元格移出以将其删除时,我创建的背景 View 会与整个单元格一起移动。我想要的行为是背景颜色实际上位于单元格后面,因此当单元格在删除动画中移动时它不会移动。

以下代码是我如何向单元格添加背景 View 并将其放在 contentView 下方。

[cell.contentView setBackgroundColor:[UIColor whiteColor]];

UIView *view = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 320, self.tableView.rowHeight)];
view.backgroundColor = [UIColor redColor];
[cell addSubview:view];
[cell bringSubviewToFront:cell.contentView];

最佳答案

啊哈!

我找到了一个优雅而美妙的解决方案。我高兴得浑身发抖。

我在 cell.contentView 的右侧添加了另一个 View ,其背景颜色是我想要的。现在,当您滑动单元格时,rightSideView 会随之被拉动,因此看起来像是正在显示的 View 。 (现在,如果你想将内容放在那里,这对另一个人来说是另一个复杂的问题......我不会这样做)我想做的就是让每个单元格能够有不同的显示颜色。耶!请注意,您必须使框架变得更长(即 500),以便滑动删除看起来正确。

这是我的代码。

UILabel* label = [[UILabel alloc] initWithFrame:CGRectMake(320, 0, 500, self.tableView.rowHeight)];
label.backgroundColor = [UIColor redColor];
[cell.contentView addSubview:label];

关于ios - 平移 UITableViewCell 时会显示什么 View ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14989771/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com