- r - 以节省内存的方式增长 data.frame
- ruby-on-rails - ruby/ruby on rails 内存泄漏检测
- android - 无法解析导入android.support.v7.app
- UNIX 域套接字与共享内存(映射文件)
我正在为选项屏幕/场景使用带有静态单元格的分组 UITableView
。一切都在 Xcode 6.1/iOS 8.1.x/Storyboard 中使用自动布局完成。在表格组中有混合类型的单元格,有两种类型会给我带来问题:
在单元格 #1 上,我可以为标签和前导容器之间的左边距设置约束。据我所知,在 #2 单元格上,我无法在 Interface Builder 中设置任何约束。我在单元格 #1 中的标签上设置了左边距,以便它与单元格 #2 中的标签对齐。在 iPhone 上一切看起来都很好,但如果我在 iPad 上显示同一张表,其中 TableView 容器的大小是屏幕大小的一半,单元格 #2 获得更多边距(动态?),而单元格 #1 保持绝对边距 I在约束中设置。我还尝试使用“相对于边距”属性更改单元格 #1 中的左边距,但无济于事。
苹果手机:
iPad(tableview 宽度 = 1/2 屏幕尺寸)
所以问题是:如何为单元格 #1 中的标签设置约束,使其像单元格 #2 一样对齐。
这里还有一个指向演示该问题的 Xcode 6.1 示例项目的链接。在 iPhone 和 iPad 上运行以查看差异:
https://dl.dropboxusercontent.com/u/5252156/Code/tableViewTest.zip
这个问题可能与 Layout static table cell for iPhone and iPad 有关,但它也可能与 iOS 8 不同,因为现在一切都应该是自适应的。这就是为什么我还是决定发布这个问题。
最佳答案
在与 apple bug 报告团队进行了许多示例项目和屏幕截图并剖析之后 that answer ,我发现让您的自定义样式单元格在其边距方面表现一致并且就像默认的 UITableViewCells 一样的解决方案,您必须执行以下操作(主要基于 Becky's answer ,我强调了不同之处和不同之处让它对我有用):
在 IB 中选择您单元格的内容 View
转到尺寸检查器
在 Layout Margins 部分,选中 Preserve Superview Margins(不要点击加号)
(这是关键)对单元格本身(如果愿意的话,内容 View 的父级)执行相同的操作
按如下方式设置约束:Label.Leading = Superview.Leading Margin(常量为 0)
现在所有单元格的标签都将与默认单元格一致!这在 Xcode 7 及更高版本中对我有用,它包括我提到的线程中提到的修复。 IB 和模拟器现在应该显示正确对齐的标签。
您也可以通过编程方式执行其中的一些操作,例如在 View Controller 的类中:
cell.preservesSuperviewLayoutMargins = true
cell.contentView.preservesSuperviewLayoutMargins = true
或者你可以通过在启动时调用一次 UIAppearance 来设置它(我只知道 Swift,抱歉):
UITableViewCell.appearance().preservesSuperviewLayoutMargins = true
UITableViewCell.appearance().contentView.preservesSuperviewLayoutMargins = true
作为Ethan请指出,Apple 自己的 UIView 文档对 preservesSuperviewLayoutMargins
的描述如下:
When the value of this property is
true
, the superview’s margins are also considered when laying out content. This margin affects layouts where the distance between the edge of a view and its superview is smaller than the corresponding margin. For example, you might have a content view whose frame precisely matches the bounds of its superview. When any of the superview’s margins is inside the area represented by the content view and its own margins, UIKit adjusts the content view’s layout to respect the superview’s margins. The amount of the adjustment is the smallest amount needed to ensure that content is also inside the superview’s margins.
因此,如果您希望您的单元格的内容与 TableView 的 边距对齐(如果您愿意的话,它是曾祖 parent ),您需要让您的内容的两个上级,Content View 和 Table Cell 本身, 保留他们自己的 super View 的边距。
为什么这不是默认行为让我感到惊讶:我觉得大多数不想自定义所有内容的开发人员都希望默认情况下有这种“继承”。
关于ios - 具有自动布局左边距的 UITableViewCell 在 iPhone 和 iPad 上不同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27420888/
我是 Swift 开发新手,正在学习许多在线教程。这些教程中的大多数都引用了 Xcode 上的旧版本,并且代码会导致错误。谁能解释为什么下面的代码会产生“UITableViewCell”?无法转换为
我在我的单元格中使用 AutoLayout,但是,当单元格内有大文本并且单元格展开时,单元格似乎与下面的单元格重叠。图像显示了这是如何重叠单元格的: UITableViewCell:
我的函数接受类型为 (cell: UITableViewCell, item: AnyObject) -> () 的函数作为参数。 我的问题是,当我尝试将具有 UITableViewCell 的子类
我正在尝试做一些相当简单的事情,但我看不到最好的方法。我有一个带有两个单元格的 uitableview,第一个在 contextview 中有一个 uitextfield,输入 View 设置为 ui
我在使用 Swift 时遇到了一些挑战。 我有一个带有原型(prototype)单元的 UITableView。有3个单元格前两个包含用户填写的文本字段。第三个包含一个提交按钮。 非常简单! 我的问题
我是 Objective C 的新手。我有一个问题。 我使用自定义的tableviewcell。我正确地使用 JSON 列出了数据。 我想将点击的数据传递到新 View 的自定义表格 View 。 所
我有两个单元格,比方说我的应用程序中的单元格 A 和单元格 B。它们都有自己的类,class CellA : UITableViewCell 和 class CellB : UITableViewCe
我有一个 UIViewController,它根据屏幕上的所需选项实例化一些 UITableViewCell。这些选项之一是“说明”,我创建了一个 .XIB 文件来在屏幕上显示说明。但是,在此屏幕上,
我正在尝试创建一个 tableview,其中有一个 uitableviewcell(cell1) 的子类,其中包含一个按钮等。当在 cell1 中单击该按钮时,该按钮应该在其正下方添加和删除 uita
在使用 UITableView 编码时,我遇到了这个我无法理解的错误。我的表格有 3 行,每行设置 50 像素,但第二行除外,我将其设置为 500 像素,它填满整个屏幕。当我向下滚动到底部时,问题出现
UITableViewCell 反射(reflect)两种不同的状态:突出显示和选定。 对我来说,它们听起来相同,那么到底有什么区别? 最佳答案 突出显示发生在触地时。 选定发生在触摸时,然后调用di
我刚刚添加了屏幕截图。它是定制单元吗?正如我所见,“ map ”是右对齐的,“1800”是左对齐的。我该如何创建它? 最佳答案 它确实看起来像一个自定义单元格。因为 UITableViewCell 继
我不太了解 tableview 的整体行为: 我有一个带有我在 Storyboard中定义的动态单元格(reuseIdentifier:单元格)的表格 View 。除此之外,我还有两个使用两个 nib
我有一个带有以下代码的 UITableViewCell,其中用户单击 UITableViewCell 上的“保存”按钮。单元格中的图像已保存,“保存”按钮动画消失,但单元格仍然存在。 -(UIT
我有一个UITableView,每个单元格都包含一个UIImageView 和一个UIButton。点击按钮后我启动相机,我正在尝试更新该单元格索引路径中的 UIImageView 。到目前为止,这是
有谁知道如何在进入编辑模式时从分组的 UITableView 中隐藏多个单元格?当退出编辑模式时,我希望这些行以动画效果隐藏,就像在“联系人”应用程序中看到的那样。 如您所知,在联系人编辑模式下,行数
我在 UITableViewCell 中有一个 subview ,其中包含一个 UILabel 和一个 UIButton。当我按下按钮时,它出于某种原因取消选择 UITableViewCell。 有没
我一直在经历在 UItableViewCell 中设置 UIDatePicker 的过程,当选择其上方的 UITableViewCell 时会显示该 UIDatePicker,然后在选择 UITabl
我必须集成从代码中以编程方式生成的 UITableViewCell,如下所示: UITableViewCell *newCell = [[UITableViewCell alloc] initWith
我现在正在学习 iOS 开发中的 UITableView 类,我想在导航到多个 UITableViewCells 的部分中实现点击一个 UITableViewCell,该附件类型用于复选标记,我应该怎
我是一名优秀的程序员,十分优秀!