我是iOS新手,虽然我已经掌握了基础知识,现在我正在尝试开发填字游戏应用。任何建议从哪里开始。
我面临的最大问题是开发15 X 15格仔板。我想到了两种可能的解决方案 -
要在每15行中放置15个TextFields,并根据要求我将禁用文本字段并添加黑色背景颜色。但也有两个问题,因为一个填字游戏盒左上角有一个数字,我怎么能把它?第二个是它会影响我的表现,因为有太多的文字字段。
我想到的另一种可能的解决方案是将CGRect and CGContextAddRect
的电路板编码到指定的位置。但是我对如何与CGRect进行交互存在问题,即点击它会弹出键盘,用户可以输入字母。
请帮助,我不知道从哪里开始。其他解决方案也是可以接受的。
答案 0 :(得分:4)
我建议使用UICollectionView。这类似于UITableView,但有多行和多列。每个UICollectionViewCell都应该包含一个UITextField。
对于数字,你可以静态地做,我。即你在你的故事板上做到这一点(为每个数字放置一个UITextField,剩下的空间将是UICollectionView。
或者(我更喜欢,但需要更多逻辑)你制作一个16x16板,第0节和第0节中的每一行将用于数字,其余部分用于实际的填字游戏。
答案 1 :(得分:1)
最好的方法是使用UICollectionView,如果定位的是旧版本,则定位为iOS6 +或AQGridView。每个细胞最终都是UIVIew。
拥有自定义文本字段可能会使事情变得复杂。使用UIKeyboard并将委托设置为集合视图。在didselectrowAtIndex中显示你的键盘。任何键盘委托都将返回您可以在该框中设置为标签的字符
这种优于文本域方法的优点
1) You can easily customize UIView/UILabel as compared to UITextField. 2) Labels can have custom fonts and attributed strings . 3) It's difficult to hide cursor in UITextField. which shows an editing mode.
缺点:需要Label的键盘设置。 (但是你可以使用像pickerview这样的替代控件来克服)
此外,请确保您不在视图中存储任何值。始终刷新数据结构视图(二维字符数组)。
答案 2 :(得分:0)
只有一个带有标签的视图网格应该可以使用。你可能认为能够输入每个角色是个好主意,但事实并非如此。用户将点击Ana方形类型,在另一个方格上键入,键入...
因此,如果您使用标签,则可以使用不同的UI,让用户现在输入一个字符串,然后您可以将字符放在正确的标签中。