gpt4 book ai didi

ios - 自定义 UICollectionViewFlowLayout 边框

转载 作者:行者123 更新时间:2023-12-02 05:16:07 26 4
gpt4 key购买 nike

我创建了一个继承自 UICollectionViewFlowLayout 的 Swift 类,并且我已经能够成功地完成一些巧妙的操作,例如更改它绘制的每个框之间的间距。我正在绘制日历,因此想象一下 28-31 个盒子,每行 7 个,具体取决于月份。

..我从未弄清楚的一件事是如何做一些事情,例如使右边框为空或不为空。或者顶部边框。我最近将每个框之间的间距更改为 0,现在框的边框重叠。

我希望以编程方式将所有右边框设为空白,以便下一个边框的左边框充当共同边框(因此它不是双边框)。然后,在每行集合中的最后一个框上,我可以使其具有右边框。知道我在说什么吗?每个盒子周围都有漂亮干净的细边框。

我是否在我的覆盖函数layoutAttributesForElementsInRect(rect: CGRect) -> [UICollectionViewLayoutAttributes]中执行此操作?也许在其他地方?

谢谢!

最佳答案

砰!我想到了。这太酷了,因为现在我可以以编程方式决定何时添加下面的边框(即 if x then day.layer.addSublayer(topBorder),否则不添加它)

func collectionView(collectionView: UICollectionView!, cellForItemAtIndexPath indexPath: NSIndexPath!) -> UICollectionViewCell!
{
let day = collectionView.dequeueReusableCellWithReuseIdentifier("cell", forIndexPath: indexPath) as! CalendarDayCollectionViewCell

/* adds a border to entire grid */
day.layer.borderColor = UIColor.lightGrayColor().CGColor
//day.layer.borderWidth = 1 //can also do .cornerRadius to round out borders



//top border
let topBorder = CALayer()
topBorder.frame = CGRectMake(0.0, 0.0, day.frame.size.width, 1.0);
topBorder.backgroundColor = UIColor(white: 0.8, alpha: 1.0).CGColor


// bottom border
let bottomBorder = CALayer()
bottomBorder.frame = CGRectMake(0.0, day.frame.size.height-1, day.frame.size.width, 1.0);
bottomBorder.backgroundColor = UIColor(white: 0.8, alpha: 1.0).CGColor

let leftBorder = CALayer()
leftBorder.frame = CGRectMake(0.0, 0.0, 1.0, day.frame.size.height);
leftBorder.backgroundColor = UIColor(white: 0.8, alpha: 1.0).CGColor

let rightBorder = CALayer()
rightBorder.frame = CGRectMake(day.frame.size.width - 1, 0.0, 1.0, day.frame.size.height);
rightBorder.backgroundColor = UIColor(white: 0.8, alpha: 1.0).CGColor

day.layer.addSublayer(topBorder)
day.layer.addSublayer(bottomBorder)
day.layer.addSublayer(leftBorder)
day.layer.addSublayer(rightBorder)

return day
}

关于ios - 自定义 UICollectionViewFlowLayout 边框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33599296/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com