我想将自定义视图加载到静态UITableViewCell
,并将视图调整为UITableViewCell
的水平边界。
我实现了装载,但我坚持调整大小。也许有些天才会帮助我:)。
以下是我采取的步骤:
的UITableView :
创建了单一视图应用
在StoryBoard中删除了视图并将TableViewController
(TVC)拖到故事板上。将其嵌入UINavigationController
。
UITableViewController
的子类。UITableView
内容设置为“静态单元格”
UITableView
有两个部分,每个部分都有一行。第一部分和第一部分可以忽略。第二部分和第二行是加载来自nib的uiview的地方。UITableViewCell
创建了一个Outlet,其中将加载视图。的UIView :
FirstDetailView.xib
创建了一个自定义视图作为笔尖InterfaceBuilder
(FDV)。UIView
FirstDetailView.swift
创建了一个子类,在Identity Inspector中将其连接到nib处的FDV。
此时,TextFields只有IBOutlet
。载入:
UITableViewCell
的代码:导入UIKit
类MasterTableViewController:UITableViewController {
@IBOutlet weak var detailCell: UITableViewCell!
override func viewDidLoad() {
super.viewDidLoad()
// loading customized tableViewCell
let nib = UINib(nibName: "FirstDetailView", bundle: nil)
let nibs = nib.instantiateWithOwner(self, options:nil)
let firstDetailView = nibs.first as? FirstDetailView
if let firstView = firstDetailView {
detailCell.contentView.addSubview(firstView)
}
}
当我点击播放时。该视图将加载到UITableViewCell
。但是文本区域超出了视图范围。我该怎么做才能解决UIView
界限?
(行的垂直大小不是问题。抱歉,但由于声誉很少,我无法发布图片。请参阅github上的示例项目)
更新或新问题 如果我在文本字段中写内容。如何访问它们或从tableViews ViewController获取内容?
答案 0 :(得分:1)
视图从笔尖加载并添加到单元格的contentView中,您应该为其添加约束以使其在单元格内正确定位。请使用以下代码重试。
// do not translate autoresizingMask to constraints, create our own
firstView.setTranslatesAutoresizingMaskIntoConstraints(false)
detailCell.contentView.addSubview(firstView)
// pin firstView edges to its superview
let constraint1 = NSLayoutConstraint(item: firstView, attribute: .Right, relatedBy: .Equal, toItem: detailCell.contentView, attribute: .Right, multiplier: 1, constant: 0)
let constraint2 = NSLayoutConstraint(item: firstView, attribute: .Bottom, relatedBy: .Equal, toItem: detailCell.contentView, attribute: .Bottom, multiplier: 1, constant: 0)
let constraint3 = NSLayoutConstraint(item: firstView, attribute: .Left, relatedBy: .Equal, toItem: detailCell.contentView, attribute: .Left, multiplier: 1, constant: 0)
let constraint4 = NSLayoutConstraint(item: firstView, attribute: .Top, relatedBy: .Equal, toItem: detailCell.contentView, attribute: .Top, multiplier: 1, constant: 0)
detailCell.contentView.addConstraints([constraint1,constraint2,constraint3,constraint4])