我实现了UICollectionViewCell。现在我需要设置边界效果,其中单元格与交叉点交叉。
这是图像,我需要像这样设置边框..
我试着给出了细胞边界但输出左边和出现右侧边框,这不是我想要的输出。 所以我的输出看起来像这样。 (输出错误)
所以请帮助我..
答案 0 :(得分:1)
注意:根据问题所有者与我之间的讨论得出以下答案。
您需要正确设置collectionViewFlowLayout
以获得所需的输出。请尝试以下代码:
func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAtIndexPath indexPath: IndexPath) -> CGSize {
// All the values are changable according to your needs.
let layout = collectionView.collectionViewLayout as! UICollectionViewFlowLayout
layout.sectionInset = UIEdgeInsets.zero
layout.minimumInteritemSpacing = 1
layout.minimumLineSpacing = 2
return CGSize(width: (self.collectionView.frame.width / 2) - 1 , height:(self.collectionView.frame.height / 3) - 1)
}
更新1 :计算布局包括navigationBar
和StatusBar
。
func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAtIndexPath indexPath: IndexPath) -> CGSize {
// All the values are changable according to your needs.
let layout = collectionView.collectionViewLayout as! UICollectionViewFlowLayout
layout.sectionInset = UIEdgeInsets.zero
layout.minimumInteritemSpacing = 1
layout.minimumLineSpacing = 2
return CGSize(width: (self.collectionView.frame.width / 2) - 1 , height:(((self.view.frame.height - ((navigationController?.navigationBar.frame.height)! + UIApplication.shared.statusBarFrame.height)) / 3) - 1))
}
您可能需要在viewDidLayoutSubviews
或viewWillLayoutSubviews
override func viewDidLayoutSubviews() {
collectionView.frame = CGRect(x: 0, y: 0, width: view.frame.width, height: view.frame.height)
}
以下链接可帮助您了解collectionViewFlowLayout
。
Enforce collectionView to have only 2 rows
uicollectionview remove top padding
Adjust cellsize for fit all screens?
注意:以后,请清楚地发布您的问题及相关代码和状态问题。
答案 1 :(得分:0)
设置边框不会产生所需的结果。 enter image description here
cgfloat intcellSize =([[UIScreen mainScreen] bounds] .size.width / 3)-0.8;
现在在这个方法里面定义它:
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
{
if ((mutArrContact.count%3) == 0) {
return (mutArrContact.count/3) * intcellSize ;
}
else
{
return ((mutArrContact.count/3) * intcellSize)+ intcellSize;
}
}
- (CGSize)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout*)collectionViewLayout sizeForItemAtIndexPath:(NSIndexPath *)indexPath {
return CGSizeMake (intcellSize,intcellSize);
}
这是用于取代具有所需结果的3个细胞。