Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 如何通过拖放重新排列UILabel的字符?_Ios_Objective C_Iphone - Fatal编程技术网

Ios 如何通过拖放重新排列UILabel的字符?

Ios 如何通过拖放重新排列UILabel的字符?,ios,objective-c,iphone,Ios,Objective C,Iphone,我只是想有一个想法来制作这样的东西。假设有一个UILabel字符串@don't late。但当它显示时,它将显示如下@don'tlate.,现在用户将通过拖放重新排列这些字符,并使其成为正确的单词 现在,任何人都可以给我任何想法或示例,说明我如何在iPhone应用程序开发中做到这一点 提前感谢我已经在上创建了一个示例项目 我想 下面是最相关的代码 // MARK: Actions extension ViewController { @IBAction func moveLabel(

我只是想有一个想法来制作这样的东西。假设有一个UILabel字符串@don't late。但当它显示时,它将显示如下@don'tlate.,现在用户将通过拖放重新排列这些字符,并使其成为正确的单词

现在,任何人都可以给我任何想法或示例,说明我如何在iPhone应用程序开发中做到这一点


提前感谢

我已经在上创建了一个示例项目

我想

下面是最相关的代码

// MARK: Actions

extension ViewController {

    @IBAction func moveLabel(gesture:UIPanGestureRecognizer)  {

        if let labelBeingMoved = labelBeingMoved {
            labelBeingMoved.center = gesture.locationInView(labelContainer)
        }
    }

}


// MARK: UIGestureRecognizerDelegate

extension ViewController : UIGestureRecognizerDelegate {


    func gestureRecognizerShouldBegin(gesture: UIGestureRecognizer) -> Bool {

        let location = gesture.locationInView(labelContainer)



        //You'll have to change this to account for labels on top of one another
        for label in labels {
            if label.frame.contains(location) {
                labelBeingMoved = label
                labelContainer.bringSubviewToFront(labelBeingMoved!)
                return true
            }

        }
        return false
    }


}

我会研究一下UIKit。难道不可能使用UIKit框架吗?是的。它是。我会使每个字符都有自己的UILabel,并将它们放在一个视图中,该视图不会对in内容使用自动布局。然后在容器视图上启用交互,并在容器视图上添加UIPangestureRecognitor。当这个手势被执行时,我会做一个命中测试来确定应该平移哪个UILabel,确保它是最前面的子视图。然后在平移过程中将其中心属性更新为平移手势的位置。它建议使用sprite工具包的原因是,它感觉像是您在创建游戏体验,在SpriteKit中这样做通常更容易。如果您能给我举个例子,这将对我大有帮助。我理解您的观点,但我无法理解移动UILabel中心位置的点。请举一个例子。非常感谢您的帮助。我已经这样做了,但我想要这样的东西假设一个字符串@Wake up。,其中,w和a之间的间距是固定的,但我必须像这样显示,其中a几乎与w重叠,因此用户将从左向右移动它,但用户不应该移动与k重叠的字符a。这有什么意义吗?我很高兴这个起始代码帮助了您。我真的不明白您想要什么,但是如果您想确定两个帧是否重叠,可以从中使用CGRectIntersectsRect函数。