2015-10-04 89 views
0

我在ViewController中有一個UICollectionView類型爲ANY-ANY故事板,並使用swift自動佈局。我已將ViewController的大小更改爲iPhone 5屏幕大小。UICollectionViewCell中UIButton的拐角半徑不起作用

問題是,UICollectionViewCell中有一個按鈕,我正在嘗試製作該通告。當我在iPhone 5中運行時,按鈕的通道很好,但是如果我在iPhone 6或6+上運行,它不會循環顯示。

下面是我使用 「cellForItemAtIndexPath」 代碼

var btnImage = cell.contentView.viewWithTag(100) as UIButton 
    btnImage.layer.masksToBounds = true 
    btnImage.layer.cornerRadius = btnImage.frame.size.height/2 

這段代碼的結果如下 enter image description here

如果我用下面的代碼

var btnImage = cell.contentView.viewWithTag(100) as UIButton 
    btnImage.layoutIfNeeded() 
    btnImage.layer.masksToBounds = true 
    btnImage.layer.cornerRadius = btnImage.frame.size.height/2 

的結果如下

enter image description here

有沒有人有關於這個問題的任何想法。 在此先感謝。

回答

3

,對於這個問題的工作方案是如下:

cell.contentView.frame = cell.bounds //This is important line 
var btnImage = cell.contentView.viewWithTag(100) as UIButton 
btnImage.layoutIfNeeded() //This is important line 
btnImage.layer.masksToBounds = true 
btnImage.layer.cornerRadius = btnImage.frame.size.height/2 

上面的代碼使按鈕完整的圓形。

0

Roundrect不能使用集合視圖單元格不能這樣。我剛剛創建了一個演示應用程序來測試它,它工作。以下是我演示的代碼。

override func collectionView(collectionView: UICollectionView, cellForItemAtIndexPath indexPath: NSIndexPath) -> UICollectionViewCell { 
    var cell:CollectionCell = collectionView.dequeueReusableCellWithReuseIdentifier(reuseIdentifier, forIndexPath: indexPath) as! CollectionCell 

    // Configure the cell 
    cell.roundTestButton.layer.cornerRadius = 10.0 
    cell.roundTestButton.layer.masksToBounds = true 

    println(cell.roundTestButton) 

    return cell 
} 

here is git link的完整項目。

+0

我想讓按鈕完成循環。我從git下載了你的代碼,並用「cell.roundTestButton.layer.cornerRadius = cell.roundTestButton.frame.size.height/2 」 替換了這行代碼,並在iPhone 6+上運行,並且這不是完整的循環,而是變成了橢圓。 –

+0

@TeenanathPaul我沒有將它製作成循環我只是確保圓形矩形在UICollectionViewCell上工作得很好。 – rptwsthi

+0

感謝@ rptwsthi,我得到了解決方案,並且按鈕現在已完成循環。 –

1

這是由於自動佈局約束。由於角落半徑大小設置後可以增加高度和寬度。請嘗試在故事板中設置此值。

相關問題