在Swift中为iOS设计填字游戏网格(示例代码)

栏目: ios · 发布时间: 2021-05-06

简介  这篇文章主要介绍了在Swift中为iOS设计填字游戏网格(示例代码)以及相关的经验技巧,文章约3467字,浏览量206,点赞数3,值得参考!

我已经为android开发了一个填字游戏应用程序,并设法使用android支持库和按钮(GridView)中提供的This one类创建网格。

我试图使用自定义布局的UICollectionView,但它似乎是为其他目的设计的。有谁知道我可以使用什么来在iOS中创建相同(或类似)的东西?

是否有一个库可以更容易地像这样固定一个表?

注意:列数和行数固定为10x10

我更喜欢在Obj-C上使用Swift,而我还没有关心键盘和菜单。

非常感谢你

我附上了Android应用程序的截图。

对不起我的英文,还是不错:)

Android View

答案

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将为您提供:

enter image description here


以上就是本文的全部内容,希望对大家的学习有所帮助,本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

在Corona SDK中为tileset生成等距网格(示例代码)

纵横填字map版(示例代码)

仅在网格(WPF)中为一行添加IsEnabled(示例代码)

在网格中为动态列创建过滤器(示例代码)

空中布局,文字和最佳做法(示例代码)

Swift - 文本字段中的字符不可见

如何在Swift中为UIImages创建一个闪烁的指针效果

出自 IBM 的 Swift 版 Socket 框架 BlueSocket///开源小游戏Stick Hero Swift