【发布时间】:2015-08-19 10:08:18
【问题描述】:
我正在为我的UICollectionView 使用自定义UICollectionViewCell 类。我必须在我的自定义类中使用 addSubview,因为我使用的是 FirebaseUI-iOS。这就是我的 MessageCollectionViewCell 的样子:
import Foundation
import UIKit
class MessageCollectionViewCell: UICollectionViewCell {
@IBOutlet var messageContainerView: UIView?
@IBOutlet var messageText: UILabel?
@IBOutlet var messageDisplayName: UILabel?
@IBOutlet var messageUserImage: UIImageView?
@IBOutlet var messageUserImageOverlay: UIView?
override init(frame: CGRect) {
super.init(frame: frame)
// Custom initialization code for label
let size = self.contentView.frame.size
let frame = CGRectMake(0.0, 0.0, size.width, size.height)
self.messageContainerView = UIView(frame: frame)
self.messageUserImageOverlay = UIView(frame: frame)
self.messageText = UILabel(frame: frame)
self.messageDisplayName = UILabel(frame: frame)
self.messageContainerView!.addSubview(self.messageUserImageOverlay!)
self.messageContainerView!.addSubview(self.messageText!)
self.messageContainerView!.addSubview(self.messageDisplayName!)
self.contentView.addSubview(messageContainerView!)
}
required init(coder aDecoder: NSCoder) {
println("Init")
super.init(coder: aDecoder)
}
}
我的 Storyboard 文件中有我想要使用的约束,但是当我使用 addSubview 时,我的约束没有被使用。无论如何我可以使用 addSubview() 并且仍然保持约束吗?我知道我可以通过编程方式添加它,但我希望使用我已经在 Storyboard 中设置的约束。
【问题讨论】:
-
看起来与此有关:stackoverflow.com/questions/13224090/…。看起来github.com/firebase/FirebaseUI-iOS/blob/master/FirebaseUI/… 会导致原型单元格被覆盖。您还可以为 FirebaseCollectionViewDataSource 使用 XIB 构造函数,并且仍然有一个自定义类。这应该从 XIB 和自动布局中引入约束,这比原型单元更强大。
标签: ios swift autolayout uicollectionview uicollectionviewcell