【问题标题】:how to reduce/remove the left/right hand margin in a grouped UITableView?如何减少/删除分组 UITableView 中的左/右手边距?
【发布时间】:2011-09-06 22:35:22
【问题描述】:

如何减少/删除分组 UITableView 中的左/右手边距?

有没有办法在不定义自定义视图的情况下做到这一点,即直接使用 UITableViewController?

我不是在这里询问单元格之间的空间,而是您看到的单元格左右的空间。

编辑 1:我能澄清一下吗:

  • 我的解决方案中已经有一个自定义 UITableViewCell ("@interface AppointCell : UITableViewCell")
  • 我认为这些自定义 UITableViewCell 的左右区域并非直接来自单元格本身 - 我这样说只是因为当我在单元格周围放置边框时(通过它的层)我可以看到这一点 - 所以因此似乎空间来自 UITableView 本身(而不是单元格)
  • 应该再次指出我正在为表格视图使用 GROUPED 模式

【问题讨论】:

    标签: iphone ios uitableview margin


    【解决方案1】:

    当然;只需调整 UITableView 的框架,使其比其父视图宽一点,并在其左边界的左侧(换句话说,在负 X 方向上)。

    【讨论】:

    • 这听起来是正确的方法。您可以尝试将该行放入您的-viewWillAppear:animated:;你的视图在第一次加载时可能没有正确设置它的大小,但是当你的控制器收到它即将出现的通知时它肯定应该正确设置。
    • 这种方法似乎不起作用,至少现在在 iOS 7 和 8 中是这样。人们正在使用一种新方法来实现这一点吗?
    • 在 iOS 7 及更高版本中,分组的表格视图在其单元格的一侧没有边距。你想做什么?
    【解决方案2】:

    我相信您必须为您的表格创建一个自定义单元格视图,该表格在左侧和右侧都有填充。

    【讨论】:

    • 啊,这是一个有趣的问题!我想知道您是否可以在 tableview 的 CGRect Frame 上调整大小...
    • 是的...我可以试试这个,看看效果如何
    【解决方案3】:

    您还可以使单元格本身更宽一些。将此方法添加到您的 UITableViewCell 子类中。

    - (void)setFrame:(CGRect)frame {
        frame.origin.x -= marginOffset;
        frame.size.width += 2 * marginOffset;
        [super setFrame:frame];
    }
    

    我相信偏移量应该是 9 点。附带说明:如果您为单元格设置自定义背景,您可能还必须将其设置为 selectedBackground。

    【讨论】:

      【解决方案4】:

      您可以通过扩展 UITableViewCell 来使用自定义单元格。我建议你看看http://www.e-string.com/content/custom-uitableviewcells-interface-builder

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-05-01
        • 2016-09-29
        • 2017-12-06
        • 2023-04-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多