我希望实现这一目标:
四处搜索,我发现可能的方法是使用UICollectionView
,因此没有问题,因为有很多关于堆栈溢出的教程和问题。我有3个问题:
-
我找不到任何关于“分隔符”(分隔所有盒子的线)的信息。我喜欢它不会水平触摸屏幕边框。它是以编程方式完成的吗
-
为了在所有设备中平均分配空间(3个框/按钮水平),我找到了这个答案。这是正确的方法吗
-
对于模糊效果,我找到了以下答案:如何在UITableView中使用自适应分段实现UIVisualEffectView
对于表视图
,它将是:
如果(!UIAccessibilityReducetTransparencyEnabled()){
tableView.backgroundColor=UIColor.clearColor()
让blurEffect=UIBlurEffect(样式:。灯光)
让blurEffectView=UIVisualEffectView(效果:blurEffect)
tableView.backgroundView=blurEffectView
}
我可以这样做吗
@IBOutlet var collectionView:UICollectionView!
如果(!UIAccessibilityReducetTransparencyEnabled()){
collectionView.backgroundColor=UIColor.clearColor()
让blurEffect=UIBlurEffect(样式:。灯光)
让blurEffectView=UIVisualEffectView(效果:blurEffect)
collectionView.backgroundView=blurEffectView
}
在一个文件中像这样创建UICollectionViewController
,该文件包含来自UICollectionViewController
的子类:
方便覆盖初始化(){
变量布局:UICollectionViewFlowLayout=UICollectionViewFlowLayout()
layout.itemSize=CGSizeMake(<;宽度>;,<;高度>;)
//设置单元格之间的间距
layout.minimumInteritemSpacing=<;列间距>;
layout.minimumLineSpacing=<;行间距>;
返回(self.init(collectionViewLayout:layout))
}
在viewDidLoad
中,您可以如下设置背景色:
self.collectionView.backgroundColor=UIColor.orangeColor()
我猜你可以这样设置背景图像:
self.collectionView?.backgroundColor=UIColor(patternImage:UIImage(名为:“image.png”)!)
您发现的模糊效果看起来不错。不过,我很难弄清楚它是如何工作的。可能使用backgroundView
属性进行设置
如果我找到答案,我会更新
更新:
下面是一个可能用于模糊细胞的想法
创建一个cocoa touch类,该类包含来自UICollectionViewCell
的子类,然后将此代码添加到其中:
方便覆盖初始化(帧:CGRect){
self.init(frame:frame)
变量模糊效果:UIVisualEffect
blurEffect=UIBlurEffect(样式:。灯光)
var visualEffectView:UIVisualEffectView
visualEffectView=UIVisualEffectView(效果:模糊效果)
visualEffectView.frame=self.maskView
self.addSubview(visualEffectView)
}
覆盖func布局子视图(){
super.layoutSubviews()
self.maskView!.frame=self.contentView.bounds
}
然后在CollectionViewController
文件中的viewDidLoad
中,更改这一行代码:
self.collectionView!。registerClass(UICollectionViewCell.self,forCellWithReuseIdentifier:reuseIdentifier)
将UICollectionViewCell.self
更改为<;CollectionViewCell文件的名称>;。自我