我在一个ANY-ANY故事板类型的ViewController中有一个UICollectionView,并使用swift自动布局。我已将ViewController的大小更改为iPhone 5屏幕大小。
问题是,UICollectionViewCell中有一个按钮,我正在尝试制作那个循环。当我在iPhone 5中运行时,按钮变得圆形,但如果我在iPhone 6或6+中运行,它就不会循环播放。
以下是我在" cellForItemAtIndexPath"
中使用的代码 var btnImage = cell.contentView.viewWithTag(100) as UIButton
btnImage.layoutIfNeeded()
btnImage.layer.masksToBounds = true
btnImage.layer.cornerRadius = btnImage.frame.size.height/2
如果我使用下面的代码
<receiver android:name=".receivers.BackgroundTasksReceiver"/>
结果如下
有没有人对此问题有任何想法。 提前谢谢。
答案 0 :(得分:4)
适用于此问题的解决方案如下:
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
上面的代码使按钮完全循环。
答案 1 :(得分:1)
这是由于自动布局约束造成的。设置角半径大小后,可以增加高度和宽度。尝试在故事板中设置它。
答案 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。