我爲我的UICollectionView
使用定製的UICollectionViewCell
類。我必須在自定義類中使用addSubview,因爲我使用的是FirebaseUI-iOS。這是我的MessageCollectionViewCell是什麼樣子:在UICollectionViewCell中使用Storyboard中的Autolayout約束條件
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)
}
}
我有我的故事板文件,我想使用的限制,但是當我用我的addSubview約束並不習慣。無論如何,我可以使用addSubview()並仍然保持約束?我知道我可以以編程方式添加它,但我希望使用我已經在Storyboard中設置的約束條件。
看起來像它與此有關:http://stackoverflow.com/questions/13224090/uicollectionview-registercell-blank-cells。看起來像https://github.com/firebase/FirebaseUI-iOS/blob/master/FirebaseUI/Implementation/FirebaseCollectionViewDataSource.m#L77導致覆蓋原型單元格。您還可以使用FirebaseCollectionViewDataSource的XIB構造函數,並且仍然有一個自定義類。這應該引入來自XIB和自動佈局的約束,比原型單元更強大。 –