在Swift中为iOS设计填字游戏网格
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在Swift中为iOS设计填字游戏网格相关的知识,希望对你有一定的参考价值。
我已经为android开发了一个填字游戏应用程序,并设法使用android支持库和按钮(GridView
)中提供的This one类创建网格。
我试图使用自定义布局的UICollectionView,但它似乎是为其他目的设计的。有谁知道我可以使用什么来在ios中创建相同(或类似)的东西?
是否有一个库可以更容易地像这样固定一个表?
注意:列数和行数固定为10x10
我更喜欢在Obj-C上使用Swift,而我还没有关心键盘和菜单。
非常感谢你
我附上了Android应用程序的截图。
对不起我的英文,还是不错:)
答案
UIViewController应该可以满足您的需求。尝试这样的事情:
class ViewController: UIViewController, UICollectionViewDataSource, UICollectionViewDelegate, UICollectionViewDelegateFlowLayout {
var collectionView: UICollectionView!
var gridSize: CGFloat = 10
override func viewDidLoad() {
super.viewDidLoad()
let layout = UICollectionViewFlowLayout()
layout.minimumInteritemSpacing = 1
layout.minimumLineSpacing = 1
collectionView = UICollectionView(frame: CGRect(x: 0, y: 0, width: 0, height: 0), collectionViewLayout: layout)
collectionView.dataSource = self
collectionView.delegate = self
collectionView.register(UICollectionViewCell.self, forCellWithReuseIdentifier: "Cell")
collectionView.translatesAutoresizingMaskIntoConstraints = false
view.addSubview(collectionView)
view.addConstraints([
NSLayoutConstraint(item: collectionView, attribute: .leading, relatedBy: .equal, toItem: view, attribute: .leading, multiplier: 1.0, constant: 0),
NSLayoutConstraint(item: collectionView, attribute: .trailing, relatedBy: .equal, toItem: view, attribute: .trailing, multiplier: 1.0, constant: 0),
NSLayoutConstraint(item: collectionView, attribute: .top, relatedBy: .equal, toItem: view, attribute: .top, multiplier: 1.0, constant: 20),
NSLayoutConstraint(item: collectionView, attribute: .height, relatedBy: .equal, toItem: nil, attribute: .notAnAttribute, multiplier: 1.0, constant: view.frame.width) ])
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
}
func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {
return Int(pow(Double(gridSize), 2))
}
func numberOfSections(in collectionView: UICollectionView) -> Int {
return 1
}
func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "Cell", for: indexPath)
// Set up your cells here
return cell
}
func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> CGSize {
let size = view.frame.width / gridSize - 1
return CGSize(width: size, height: size)
}
}
设置单元格的backgroundColor
将为您提供:
以上是关于在Swift中为iOS设计填字游戏网格的主要内容,如果未能解决你的问题,请参考以下文章