在我正在创建的iOS 8应用程序中,我有一个tableview,我需要它们自我调整大小.我使用自动布局实现它,它的工作原理.几乎.这是它现在的样子.

单元格内有3个标签.主要标签有lorem ipsum文本.带有数字串的字幕(这是两个单独的标签.可能会因为颜色相同而混淆.)然后第三个标签带有小黑色文字.
第一个标签正确调整大小没有问题,第二个标签相应地上下移动.但问题在于第三个小标签.正如您所看到的,它没有调整自身大小以适应所有文本.
现在发生了一件奇怪的事情.我把它转向风景,这就是它.

由于存在空间,标签正在显示其应有的整个文本.精细.然后我把它变回肖像.

现在,小标签已经调整大小以适应其所有文本,但它溢出了单元格边界.我试着把细胞做大,但是没用.由于这是自我调整细胞,我不认为这是正确的方法.
我没有收到任何错误,甚至没有警告我的汽车布局限制.

我在方法中设置了这两行代码viewDidLoad().
tableView.estimatedRowHeight = 100
tableView.rowHeight = UITableViewAutomaticDimension
Run Code Online (Sandbox Code Playgroud)
谁能告诉我这里可能做错了什么?
由于仅仅通过查看图像很难回答,而且我没有更多的代码可以在上面的代码段旁边发布,我上传了一个可运行的Xcode项目,在这里展示了这个问题.(有2个自定义单元格.基本上它是同一个单元格,只是高度在第二个单元格中增加.)
我一直在摆弄汽车布局限制,但我似乎无法让这个工作.任何帮助,将不胜感激.
谢谢.
更新:
在本教程的帮助下,我发现了一些有用的指针.根据它,每个子视图应该具有固定其所有边的约束,并且应该存在从上到下的约束,这有助于自动布局以计算单元的高度.在我的原始帖子中,我在每个标签之间有垂直空间,所以我认为这是自动布局无法计算正确高度的原因.
所以我做了一些改变.
现在这是另一个奇怪的部分.当我第一次运行它时,底部标签裁剪问题仍然存在.

但是,如果我将设备旋转到横向并将其转回肖像,则所有单元格都会正确调整大小以适合两个标签!

仍然无法弄清楚为什么一开始不会发生这种情况.更新的Xcode项目在这里.
我正在尝试创建一个包含自定义视图的堆栈视图。本示例中的每个自定义视图都具有相同的信息。出于某种原因,而不是在每个子视图重叠之后都去,我不知道为什么。我没有任何限制(在布局中)。堆栈视图在滚动视图内部,因为可能有很多子视图。
自定义视图代码:
import UIKit
class AddressComponentView: UIView {
@IBOutlet weak var labelStreet: UILabel!
@IBOutlet weak var labelCity: UILabel!
@IBOutlet weak var labelOfficialRegionType: UILabel!
@IBOutlet weak var labelOfficialRegionTitle: UILabel!
@IBOutlet weak var labelCountry: UILabel!
@IBOutlet weak var labelZip: UILabel!
var view: UIView!
func loadData(address: AddressData){
self.labelStreet.text = address.street
self.labelCity.text = address.city
self.labelOfficialRegionType.text = address.region?.officialRegionType
self.labelOfficialRegionTitle.text = address.region?.officialRegionTitle
self.labelZip.text = address.zip
self.labelStreet.sizeToFit()
}
override init(frame: CGRect) {
super.init(frame: frame)
}
required init?(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)
}
Run Code Online (Sandbox Code Playgroud)
}
这是我动态添加子视图的方法(viewContent 是堆栈视图):
viewScroll.contentSize …Run Code Online (Sandbox Code Playgroud) 我有一个分段控件,它在两个UIViewControllers之间切换.信息视图和列表视图(TableView).我想使用第一个UIViewController作为我的TableView的第一个单元格(在另一个段上).有一种方法可以将UIViewController转换为单元格或某种方式将其用作TableView的单元格吗?
我目前正在开发一个练习swift程序,需要将CoreData结果显示在表格上.
我构建了我的应用程序,使得故事板本身不包含任何UI元素,只包含视图(带有附带的UIViewController类),然后加载自定义的nibs/xibs(也附带一个UIView子类).在这种情况下,xib包含a UITableView,单独的xib包含单元格.
TableView类:
import UIKit
protocol SkillsViewDelegate{
}
class SkillsView: UIView {
var delegate : SkillsViewDelegate!
@IBOutlet weak var skillsTable: UITableView!
}
Run Code Online (Sandbox Code Playgroud)
TableView控制器:
import UIKit
import CoreData
class SkillsViewController: UIViewController, SkillsViewDelegate, UITableViewDataSource, UITableViewDelegate {
var displaySkillsView : SkillsView!
var displaySkillsCell : SkillViewCell!
let textCellIdentifier = "skillViewCell"
override func viewDidLoad() {
super.viewDidLoad()
self.displaySkillsView = UIView.loadFromNibNamed("SkillsView") as! SkillsView
self.displaySkillsView.delegate = self
self.view = self.displaySkillsView
// Do any additional setup after loading the view.
} …Run Code Online (Sandbox Code Playgroud) 目前,我有两个表视图控制器,包含一些相同的自定义tableview单元格.每个表视图控制器都有自己的自定义tableview单元格.我希望只创建一个自定义表视图单元格,可以在这两个表格视图控制器之间共享.我可以参考任何指南吗?