将UIButton设置为UICollectionViewCell的大小

时间:2016-07-25 21:59:43

标签: ios swift uicollectionview uicollectionviewcell

我有一个名为UICollectionViewCell的{​​{1}}自定义类。

我正在创建一个类型为ChronicleCell的实例变量。

UIButton

对于这个实例变量,我想将其框架设置为等同于 class ChronicleCell : UICollectionViewCell { //init etc. var buttonFullCellSize : UIButton = { let button = UIButton() //TODO set button to be size of UICollectionViewCell frame }() } 的框架。但是,在从UICollectionViewCell继承的类中无法访问它。我怎样才能做到这一点?谢谢!

2 个答案:

答案 0 :(得分:2)

将collectionViewLayout的框架分配给按钮:

let rect = self.collectionViewLayout.layoutAttributesForItemAtIndexPath(clIndexPath).frame
button.frame = button.rect

您的代码可能是:

 class ChronicleCell : UICollectionViewCell {
    //init etc.
    var buttonFullCellSize : UIButton = {
       let button = UIButton()
       let frameOfUICollectionViewCell = self.collectionViewLayout.layoutAttributesForItemAtIndexPath(clIndexPath).frame
       button.frame = button.rect
       return button
    }()

 }

答案 1 :(得分:2)

单元格的contentView与单元格大小相同,因此您应该使用它来获取框架。

var buttonFullCellSize: UIButton {
    let button = UIButton()
    button.frame = contentView.frame
    return button
}