【问题标题】:tableView separator layout issue in IOS 7IOS 7中的tableView分隔符布局问题
【发布时间】:2013-10-08 09:26:34
【问题描述】:

如您所见,上述分隔符的布局不正确。 tableViewMoreTabController 中。

我发现解决方案是How to fix UITableView separator on iOS 7? 和这个Is there a way to make UITableView cells in iOS 7 not have a line break in the separator?

但是我正在针对 SDK 6.0 而不是 SDK 7.0 编译我的应用程序,因为如果针对 SDK 7.0 进行编译,我的应用程序将无法运行。 setSeparatorInset这个函数是SDK 7.0以后才有的,还有什么办法可以解决吗?

【问题讨论】:

  • 请仔细阅读上述解决方案。他们明确检查setSeparatorInset 是否已实现:if ([tableView respondsToSelector: @selector(setSeparatorInset:)])
  • 如果 iOS 认为应用程序是 iOS 7 之前的应用程序,则不应使用分隔符。检查 Base SDK 是否设置为 iOS 6 而不是 Latest iOS。请注意,部署目标不相关。
  • 再想一想,我觉得我们都走错了路。如果您在 iOS 6 或 iOS 7 上的 iOS 6 模式下运行任何应用程序(旧 UI 样式可见),所有分隔线始终具有相同的长度。所以很有可能另一个白色背景的视图覆盖了屏幕左下角的表格视图,并使分隔线看起来像这样。
  • @Codo 对不起,我的最后一条消息是错误的。我想说的是,我的 xcode 是 4.5,我正在针对 SDK 6.0 进行编译。它无法识别setSeparatorInset,因为此功能是在SDK IOS 7 中引入的。但由于某种原因,我必须在SDK 6.0 中编译,而是在IOS 7 设备中运行该应用程序。现在,布局问题发生了......

标签: ios iphone uitableview ios7


【解决方案1】:

//在ios 7中我们可以在UITableView中设置separatorInset两种方式

1) 由务实设定

table.separatorInset=UIEdgeInsetsZero;

2) 或者你可以这样做

【讨论】:

  • 别忘了检查它是否真的是 iOS 7,否则你的应用会崩溃,例如:if (IS_OS_7_OR_LATER) { [self.tableView setSeparatorInset:UIEdgeInsetsZero]; },如果你需要...#define IS_OS_7_OR_LATER ([[[UIDevice currentDevice] systemVersion] floatValue] >= 7.0)
【解决方案2】:

解决方案可能是将分隔符样式设置为无。 然后,添加一个 imageview 或 uiview(背景颜色为灰色),其宽度为单元格宽度和高度 1 或 2(取决于您希望分隔符的厚度),然后将此视图或图像添加到单元格的末尾。 这也将帮助您设置自己的分隔符颜色。 希望这会有所帮助。

【讨论】:

    猜你喜欢
    • 2013-09-18
    • 1970-01-01
    • 2015-10-10
    • 2015-01-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多