UICollectionViewFlowLayout minimumLineSpacing 未应用于整个集合视图 - Swift
UICollectionViewFlowLayout minimumLineSpacing not applied to whole collection view - Swift
我正在为日历创建 UIView 子类,其中使用流布局的 UICollectionView 来显示日期。代码是:
override func draw(_ rect: CGRect)
{
super.draw(rect)
.
.
configureCalendarView()
.
}
func configureCalendarView()
{
cellWd = Double(self.frame.size.width)/7.0
let layout = UICollectionViewFlowLayout.init()
layout.minimumLineSpacing = 0.5
layout.minimumInteritemSpacing = 0.0
layout.sectionInset = UIEdgeInsetsMake(1, 0, 0, 0)
collectionV = UICollectionView.init(frame: CGRect(x: 0, y:90, width:self.frame.size.width, height:CGFloat(cellWd * 5 + 3.5)), collectionViewLayout: layout)
collectionV?.backgroundColor = self.backgroundColor
collectionV?.isScrollEnabled = false
collectionV?.register(DayCell.classForCoder(), forCellWithReuseIdentifier:reuseID)
collectionV?.dataSource = self;
collectionV?.delegate = self;
collectionV?.backgroundColor = calBgColor //lightgray
self.addSubview(collectionV!)
}
一切正常,但最小行距在第 2 行和第 3 行之间没有任何影响。下面是截图:
怎么了?任何帮助将不胜感激。谢谢!
layout.minimumLineSpacing = 0.5 转换为 0.5point * scale = pixels。
因此,如果您 运行 在 iphone 6+ 7+ 上使用 3.0 比例,则 0.5 将是 1.5 像素。在 2x 比例下,这将是 1 个像素。
要纠正这一点。添加:
layout.minimumLineSpacing = 1.0 / [UIScreen mainScreen].scale;
这样你保证总是得到 1 像素间距。
编辑:
layout.minimumLineSpacing = 1.0f;
CGFloat collectionWidth = self.frame.size.width;
CGFloat days = 7.0f;
CGFloat spacing = 1.0f;
CGFloat itemHeight = floorf((collectionWidth/days) - spacing;
我正在为日历创建 UIView 子类,其中使用流布局的 UICollectionView 来显示日期。代码是:
override func draw(_ rect: CGRect)
{
super.draw(rect)
.
.
configureCalendarView()
.
}
func configureCalendarView()
{
cellWd = Double(self.frame.size.width)/7.0
let layout = UICollectionViewFlowLayout.init()
layout.minimumLineSpacing = 0.5
layout.minimumInteritemSpacing = 0.0
layout.sectionInset = UIEdgeInsetsMake(1, 0, 0, 0)
collectionV = UICollectionView.init(frame: CGRect(x: 0, y:90, width:self.frame.size.width, height:CGFloat(cellWd * 5 + 3.5)), collectionViewLayout: layout)
collectionV?.backgroundColor = self.backgroundColor
collectionV?.isScrollEnabled = false
collectionV?.register(DayCell.classForCoder(), forCellWithReuseIdentifier:reuseID)
collectionV?.dataSource = self;
collectionV?.delegate = self;
collectionV?.backgroundColor = calBgColor //lightgray
self.addSubview(collectionV!)
}
一切正常,但最小行距在第 2 行和第 3 行之间没有任何影响。下面是截图:
怎么了?任何帮助将不胜感激。谢谢!
layout.minimumLineSpacing = 0.5 转换为 0.5point * scale = pixels。
因此,如果您 运行 在 iphone 6+ 7+ 上使用 3.0 比例,则 0.5 将是 1.5 像素。在 2x 比例下,这将是 1 个像素。 要纠正这一点。添加:
layout.minimumLineSpacing = 1.0 / [UIScreen mainScreen].scale; 这样你保证总是得到 1 像素间距。
编辑:
layout.minimumLineSpacing = 1.0f;
CGFloat collectionWidth = self.frame.size.width;
CGFloat days = 7.0f;
CGFloat spacing = 1.0f;
CGFloat itemHeight = floorf((collectionWidth/days) - spacing;