首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >创造文字游戏

创造文字游戏
EN

Stack Overflow用户
提问于 2015-07-16 02:18:17
回答 1查看 57关注 0票数 0

我正在使用UIKit创建一个单词游戏,为了解决这个难题,我想为用户表示整个字母表,下面是我的代码:

代码语言:javascript
运行
复制
var emptyPos = [0]
 @IBOutlet var pos1: UILabel!

    @IBOutlet var pos2: UILabel!

    @IBOutlet var pos3: UILabel!

    @IBOutlet var pos4: UILabel!


    @IBAction func btnA(sender: UIButton) {

        letters(sender)

    }


    @IBAction func btnB(sender: UIButton) {

        letters(sender)
    }

    @IBAction func btnC(sender: UIButton) {

        letters(sender)

    }

    @IBAction func btnD(sender: UIButton) {

        letters(sender)

    }

 func moveLetter (pos: UILabel, btn: UIButton) {

        UIView.animateWithDuration(0.5, animations: { () -> Void in

            btn.center = pos.center
        })
    }

    func letters (btn: UIButton) {

        switch emptyPos.count {

        case 1:

            moveLetter(pos1, btn: btn)
            emptyPos.append(0)
            println(emptyPos)

        case 2:

            moveLetter(pos2, btn: btn)
            emptyPos.append(0)
            println(emptyPos)

        case 3:

            moveLetter(pos3, btn: btn)
            emptyPos.append(0)
            println(emptyPos)

        case 4:

            moveLetter(pos4, btn: btn)
            emptyPos.append(0)
            println(emptyPos)



        default:
            println("Error")
        }
    }

这个想法是,用户必须一封又一封地点击一个又一个字母,把它们移动到空标签上,找出正确的单词。正如你所看到的,我把每个字母都变成一个按钮,每个空空间作为标签,但我想知道是否有比为每个字母创建26个按钮更好的方法。将所有按钮链接到单个函数将无法工作,因为那样的话,我将不得不依赖sender.tag,这是我不能传递给我的函数,以移动字母。那么,我应该继续做我正在做的事情,还是有更好的方法来做到这一点?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-07-16 02:22:57

如果您创建了一个自定义UIButton,您可以向该按钮添加额外的属性,然后将@IBAction的发送方更改为您的自定义类,然后将该按钮传递给您的moveLetter,它可以根据该按钮提供的信息知道该做什么。然后它们都可以共享相同的按钮按下功能。

然后,如果您的按钮子类有一个名为ButtonLetter的@属性字符串,您可以在情节提要中定义它的值,而不是在所有按钮的代码中手动执行,方法是给它一个运行时属性,如下面的屏幕快照所示。

或者你可以懒得把按钮的文字读出来,但我会说这是一种更合适的方式,因为这可以适用于任何类型的按钮,也许按钮上的文本实际上不是你想要用来计算按钮的值,但在你的情况下,它恰好是那样的。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31444330

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档