Wednesday, October 4, 2017

Di chuyển một view Swift

Ta muốn di chuyển một view như nút bấm, chữ khỏi vị trí một khoảng cách nào đó.
Ví dụ muốn nó chạy dọc xuống 100dp, ta dùng lệnh sau trong viewDidLoad.
UIView.animateWithDuration(0.4, animations: {
self.button.center.y += 100
 })
Để nó chạy ngang, bên trong thay bằng
self.button.center.x += 100
Muốn nó di chuyển chéo thì cho cả 2 dòng vào trong ngoặc.
Để nó chạy tới chạy lui thì dùng các dòng sau
let op = UIViewAnimationOptions.Repeat
let rig = self.button.center.x
UIView.animateWithDuration(1, delay: 0, options: op, animations: {
self.button.center.x += 100
            }, completion: {
_in
self.button.center.x = rig
        })
Để view trông như bật nảy tới vị trí ngang cách nó 100dp, ta dùng
let op = UIViewAnimationOptions.Repeat
UIView.animateWithDuration(0.8, delay: 0,
                                   usingSpringWithDamping: 0.7,
                                   initialSpringVelocity: 20,
                                   options: op,
                                   animations: {
self.button.center.x += 100
            }, completion: nil)
Để khi người dùng chạm tay vào view, lôi đi đâu thì nó chuyển tới chỗ đó, ta tạo một hàm.
func hand(sender: UIPanGestureRecognizer){
if sender.state != .Ended&& sender.state != .Failed{
let location = sender.locationInView(sender.view!.superview!)
            sender.view!.center = location
        }
    }
Trong viewDidLoad, thêm các dòng sau.
let t = UIPanGestureRecognizer(target:self, action:#selector(ViewController.hand(_:)))

button.addGestureRecognizer(t)

No comments:

Post a Comment