gpt4 book ai didi

ios - 在 Xcode 中设置分组单元格的宽度

转载 作者:行者123 更新时间:2023-12-01 19:21:46 25 4
gpt4 key购买 nike

几天来一直在胡闹这个问题,但没有任何进展。我想我想做的很简单:

我有一个 320x60 的图像,我在普通的 TableView 中使用它,因为这些单元格占据了屏幕的整个宽度(320)。 TableView 中的分组单元格为 300 宽,并且在左侧和右侧具有 10 的插入/边距。

我可以以某种方式删除这些插图/边​​距并让分组单元格为 320 宽吗?我尝试将左侧的内容插图设置为-10。这确实“删除”了左边距,但它仍然只有 300 宽。还尝试编辑 Storyboard的 XML(我正在使用 iOS 5 - Storyboard),但没有任何乐趣。

这个类似的问题在这里得到了回答,因为不可能,希望在 2 年多的时间里发生了一些变化!:
Adjust cell width in grouped UITableView

PS 我想改变宽度,因为背景图像包含漂亮的阴影,我已经读过过度使用阴影可能意味着性能问题。此外,阴影在边框周围额外增加了 5px,因此如果我使用标准宽度,这意味着 -10px 宽。

非常感谢帮助!

最佳答案

一个 不整洁的解决方案是使表格 View 宽 340 像素,距离屏幕左边缘 10 像素。

一个 涉及更改私有(private)类属性的解决方案是做一个UITableViewCell子类,并覆盖其layoutSubviews方法。当我记录 subview 时,我发现这些:

"<UIGroupTableViewCellBackground: 0x95246b0; frame = (9 0; 302 45); autoresize = W; layer = <CALayer: 0x95226b0>>",
"<UITableViewCellContentView: 0x92332d0; frame = (10 0; 300 43); layer = <CALayer: 0x9233310>>",
"<UIView: 0x95248c0; frame = (10 0; 300 1); layer = <CALayer: 0x951f140>>"

如果我们采用这些 subview 并填充可用的整个边界会发生什么?
- (void)layoutSubviews;
{
// By default the cell bounds fill the table width, but its subviews (containing the opaque background and cell borders) are drawn with padding.
CGRect bounds = [self bounds];

// Make sure any standard layout happens.
[super layoutSubviews];
// Debugging output.
NSLog(@"Subviews = %@", [self subviews]);
for (UIView *subview in [self subviews])
{
// Override the subview to make it fill the available width.
CGRect frame = [subview frame];
frame.origin.x = bounds.origin.x;
frame.size.width = bounds.size.width;
[subview setFrame:frame];
}
}

在这个特殊的时刻,在 iOS 5.1 模拟器上,这是可行的。现在,一些 future 版本的 iOS 可能会重组这些类,导致这种方法灾难性地破坏表格布局。您的应用程序可能会因更改 UITableViewCellContentView 的属性而被拒绝...即使您只是修改其框架。那么,您需要多少才能让单元格填充表格宽度?

关于ios - 在 Xcode 中设置分组单元格的宽度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10070854/

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