UIView迅速改变其立场

Jos*_*y10 18 ios swift xcode6

如何从原始位置轻触按钮使UIView向上滑动,只需按一下按钮即可将其重新拉下来?在swift Xcode中.到目前为止我只有这个,我不知道是否有人可以提供帮助.在swift xcode中6.欣赏回复.我目前试过这个.

@IBOutlet弱变量DynView:UIView!

@IBOutlet weak var DynView: UIView!

@IBAction func btnUp(sender: AnyObject) {

}
Run Code Online (Sandbox Code Playgroud)

Thi*_*aes 40

您必须在点击时实现更改DynView位置的动画.这是一个例子:

@IBAction func btnUp(sender: AnyObject) {
    let xPosition = DynView.frame.origin.x
    let yPosition = DynView.frame.origin.y - 20 // Slide Up - 20px

    let width = DynView.frame.size.width
    let height = DynView.frame.size.height

    UIView.animateWithDuration(1.0, animations: {
        dynView.frame = CGRect(x: xPosition, y: yPosition, width: width, height: height)
    })
}
Run Code Online (Sandbox Code Playgroud)


Yan*_*eph 9

嗨创建这个扩展,如果你想.对于斯威夫特

创建文件Extends.Swift添加此代码

/**
    Extension UIView
    by DaRk-_-D0G
*/
extension UIView {
    /**
    Set x Position

    :param: x CGFloat
    by DaRk-_-D0G
    */
    func setX(#x:CGFloat) {
        var frame:CGRect = self.frame
        frame.origin.x = x
        self.frame = frame
    }
    /**
    Set y Position

    :param: y CGFloat
    by DaRk-_-D0G
    */
    func setY(#y:CGFloat) {
        var frame:CGRect = self.frame
        frame.origin.y = y
        self.frame = frame
    }
    /**
    Set Width

    :param: width CGFloat
    by DaRk-_-D0G
    */
    func setWidth(#width:CGFloat) {
        var frame:CGRect = self.frame
        frame.size.width = width
        self.frame = frame
    }
    /**
    Set Height

    :param: height CGFloat
    by DaRk-_-D0G
    */
    func setHeight(#height:CGFloat) {
        var frame:CGRect = self.frame
        frame.size.height = height
        self.frame = frame
    }
}
Run Code Online (Sandbox Code Playgroud)

For Use(继承UIView)

inheritsOfUIView.setX(x: 100)
button.setX(x: 100)
view.setY(y: 100)
Run Code Online (Sandbox Code Playgroud)


JP *_*ino 6

我将两个投票最多的答案合并为一个,并更新为Swift 3.所以基本上创建了一个扩展,动画视图移动到不同的位置:

extension UIView {

    func slideX(x:CGFloat) {

        let yPosition = self.frame.origin.y

        let height = self.frame.height
        let width = self.frame.width

        UIView.animate(withDuration: 1.0, animations: {

            self.frame = CGRect(x: x, y: yPosition, width: width, height: height)

        })
    }
}
Run Code Online (Sandbox Code Playgroud)