gpt4 book ai didi

ios - 我想创建自定义表格 View 分隔符,UIlabel 位于两个表格 View 单元格之间,就像 iOS 的日历应用程序

转载 作者:行者123 更新时间:2023-11-29 01:36:54 25 4
gpt4 key购买 nike

enter image description here

我如何实现这一目标?

我尝试显式添加分隔符 View ,但创建一个 UIView,在其上添加标签,就像这样,在 cellForRowAtIndexPath 中,我在其中添加 View

 UIView *timeLabelPlusSeparator = [[UIView alloc] initWithFrame:CGRectMake(0, 0, cell.contentView.frame.size.width+200, 1)];

UILabel *timeLabel = [[UILabel alloc] initWithFrame:CGRectMake(0, cellRect.origin.y -6, 45, 12)];

然后在TimeLabelPlusSeparator上添加时间标签作为 subview ,并返回到cell.contentview

这里发生的情况是,它显示在单元格的顶部,我希望它位于两个单元格的中间,就像日历一样。

如果我将它添加到 TableView 上,而不是单元格上,那么之前不可见的单元格就会产生问题,

它们是这样显示的

enter image description here

谁能指出这里的问题。是的,我的细胞被重复使用了。

这里的问题是,我只想使用 TableView ,还必须实现滑动删除等。创建不同的 View 可能需要花费大量的时间和精力。

最佳答案

@nick 的早期方法部分有效,但即使在日历中也存在问题,因为单元格内容中有一些顶部和底部边距。因为我们只是移动了分隔符,但单元格仍然存在。

我想要的是显示位于整个单元格上的按钮。但是只能实现这个丑陋的事情,因为较低的单元格总是隐藏前一个单元格的按钮。 bottom of button hiding behind lower cell

我确实尝试将按钮放在所有 View 的前面,但是使用bringSubviewToFront:,负责层次结构,因此它会出现在 TableView 之上并正确显示,但即​​使那样也无济于事。

由于我使用的 TableView 是静态的,所以最终使用了一种解决方法,即为时间标签添加一个单独的 UIScrollView。

所以我终于能够做到这一点 Time label in center但是现在有两个不同的 ScrollView ,tableview 和另一个 scrollview。

通过在 UIScrollView 委托(delegate)方法中适本地更改内容偏移,使它们都跟随彼此的滚动。

-(void)scrollViewDidScroll:(UIScrollView *)scrollView{

if([scrollView isEqual:self.timeLabelScrollView]) {
CGPoint offset = self.firstTableViewWithoutTime.contentOffset;
offset.y = self.timeLabelScrollView.contentOffset.y;
[self.firstTableViewWithoutTime setContentOffset:offset];
} else {
CGPoint offset = self.timeLabelScrollView.contentOffset;
offset.y = self.firstTableViewWithoutTime.contentOffset.y;
[self.timeLabelScrollView setContentOffset:offset];
}

这不是一个很好的方法,但是有效,因为我必须只管理单元格中心的点击,所以点击 timeLabelScrollView 没有触发 didSelectForRowAtIndexPath: 方法没有问题。如果需要,甚至可以通过添加手势识别器来处理。

关于ios - 我想创建自定义表格 View 分隔符,UIlabel 位于两个表格 View 单元格之间,就像 iOS 的日历应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32862187/

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