- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在 iOS 项目中我会做类似的事情:
tableView.rowHeight = UITableViewAutomaticDimension
tableView.estimatedRowHeight = 30
并且可以很好地调整单元格的大小。
我应该怎么做才能在 macOS 项目中重现相同的行为?
好的,func tableView(_ tableView: NSTableView, heightOfRow row: Int) -> CGFloat
。
我是否应该配置我的 SubView(单元格 View )(实际上是 NSView)两次...
在这两种方法中 - heightOfRow
和 viewFor tableColumn
?
我听说过 cell 的重用,但是没有 nibs 能做到吗?
无论如何,如果我这样做,我不会得到预期的结果。
委托(delegate)/数据源:
let items = ["second label",
"second label with alotoftext alotof...", // long line
"second label"]
func numberOfRows(in tableView: NSTableView) -> Int {
return 3
}
func tableView(_ tableView: NSTableView, heightOfRow row: Int) -> CGFloat {
let cell = SubView(text: items[row])
cell.layoutSubtreeIfNeeded()
return cell.frame.size.height
}
func tableView(_ tableView: NSTableView, viewFor tableColumn: NSTableColumn?, row: Int) -> NSView? {
return SubView(text: items[row])
}
subview :
init(text: String) {
super.init(frame: CGRect.zero)
let text1 = NSTextField(labelWithString: "first label")
let text2 = NSTextField(labelWithString: text)
text2.lineBreakMode = .byWordWrapping
text2.setContentCompressionResistancePriority(100, for: .horizontal)
self.addSubview(text1)
self.addSubview(text2)
text1 <- [Top(5), Left(5), Right(5)]
text2 <- [Top(0).to(text1, .bottom), Left(5), Right(5), Bottom(5)]
}
最后两行是EasyPeasy约束条件。
我的错误在哪里?
还有一个问题:我应该怎么做才能使单元格垂直增长/减少以适应其中的所有 subview ,从而相应地调整 tableView 的宽度?
哦,好像意识到了。
刚刚添加了观察者:
name: NSNotification.Name.NSViewFrameDidChange,
object: self.scrollView
和
let vr = scrollView.contentView.visibleRect
let indexes = tableView.rows(in: vr).toRange()!
tableView.noteHeightOfRows(withIndexesChanged: IndexSet(integersIn: indexes))
在选择器方法中。
是的。相同的 View ( subview )在没有 tableView 的情况下也能完美工作。
但我仍然遇到上述错误大小的 cellView 问题。
P.S.:对不起我的英语,我希望一切都清楚。
最佳答案
在 macOS 上它有点困难,但并不难做到。NSTableView
的作者 corbin dunn 对此有一个很好的回答 here .
简而言之:
您需要知道单元格的大小并在
func tableView(NSTableView, heightOfRow: Int)
这是 NSTableViewDelegate
的一个方法。
2016 年 11 月更新:
你快到了!您创建的 View 没有设置宽度。所以我猜测 View 本身假定它比 tableView 窄得多,因此更高。
func tableView(_ tableView: NSTableView, heightOfRow row: Int) -> CGFloat {
let cell = SubView(text: items[row])
cell.frame.size.width = tableView.frame.size.width
cell.layoutSubtreeIfNeeded()
return cell.frame.size.height
}
我没有测试过这段代码,但应该是这样。
关于swift - 我应该使用什么替代 UITableViewAutomaticDimension 来在 NSTableView 中获得相同的效果?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40688353/
我有一个 TableView ,其中包含由代码创建的动态单元格。 在 IOS 7 中,为了确保单元格完全显示,我覆盖了方法 heightForRowAtIndexPath 在 ios8 中覆盖这个方法
我正在使用 UITableViewAutomaticDimension 制作 TableView 但由于某种原因,最后一个空白单元格之后的“额外”空白单元格与最后一个带有文本的单元格的尺寸相同。我希望
我的表格有这段代码 (_filters = UITableView) - (void)viewDidLoad { // table data set here ... _filters
我正在制作一个带有文本帖子的应用程序,但我意识到很多文本帖子会很长,所以我添加了一个显示全部和更少按钮,但是当你按下它时,有时单元格会消失,你向上滚动然后它跳到单元格的中间。这是它的样子,因为它很难解
我有一个显示所有用户更新的 feedVC。我正在从 firebase 检索数据,并希望根据帖子长度自动设置高度。问题是,即使从 heightForRowAt 返回 UITableViewAutomat
我有一个项目使用 iOS 的默认动态字体。因此,我使用 UITableViewAutomaticDimension 作为高度。我以编程方式执行所有操作,因此我为我的自定义单元格设置了约束。 我对约束和
我的 Swift 项目中有这样一张表 var tableView: UITableView! tableView = UITableView() tableView.dataSource = self
图像显示在其中一个单元格中。 图像的约束条件如下: heightForRow 中此单元格的高度设置为 UITableViewAutomaticDimension。但是图像从底部被砍掉了。如何解决这个问
我添加了一个表格 View ,我在单元格中显示图像。我还添加了这段代码: tableView.estimatedRowHeight = 175 tableView.rowHeight = UITabl
关于 UITableView 的 UITableViewCell 的动态高度有很多问题。但是我无法解决我的问题。 我有这个表格单元格创建代码: class UINoteTabelViewCell: U
我正在以编程方式为日历应用程序制作一个表格 View ,并且需要根据它们包含的文本调整我的表格 View 单元格的大小。我正在尝试使用自动布局,但由于某种原因我无法让它工作 - (void)view
我很难处理动态高度自定义 tableView 单元格。 所以我得到了“无法同时满足约束条件。”警告(但只是有时,就像千分之一) 我认为 UITableViewAutomaticDimension 给出
好的,我在使用 tableview 创建动态单元格时遇到了问题。我的图像崩溃了,看起来像这样。当描述很长时效果很好,但当描述很短时效果不佳。 图像约束为:width = 120,height = 16
我正在尝试使用 UITableViewAutomaticDimension,但我无法在不引起 NSLayoutAutomaticSizeConstraint... 问题的情况下让单元格具有完整宽度和正
我对 UITableViewAutomaticDimension 有疑问: 在我的表格 View 中,我有多个以编程方式创建的 ImageView ,它们具有计算的高度: override func
我在 tableView 中使用 UITableViewAutomaticDimension 并且它工作正常,但是当加载表时,我需要单元格的行大小。表的。可能吗? 提前致谢。 最佳答案 使您的 Vie
只要我不尝试启用自动调整大小,我的单元格就可以正常显示。当我在我的 viewController 中添加用于自动调整大小的两行时,个人资料图片、用户名和日期下的所有内容都会消失(该单元格应该看起来像
是否可以为单元格设置最小高度?我使用动态: tableView.estimatedRowHeight = 83.0 tableView.rowHeight = UITableViewAutomatic
首次加载 TableView 时,所有可见单元格都是估计的行高。当我向下滚动时,单元格会自动调整大小,当我向上滚动时,最初 estimatedRowHeight 的单元格会自动调整大小。 一旦单元格自
我试图将最后一个tableView行的高度设置为与其他行不同。我不想创建一个新的单元格等,而是想从该单元格的高度“剪切”10px。由于我设置了高度的自动尺寸,因此无法使用恒定值。 它是这样的: tab
我是一名优秀的程序员,十分优秀!