2016-03-11 2 views
1

Я новичок в разработке Swift, поэтому надеюсь, что вы, ребята, можете помочь.Как разместить одно изображение перед другим?

У меня есть карта игры, она содержит 50 различных изображений (позиция) от 1 до 50, 4 символов и рулон кости (кнопка). Когда я нажимаю кнопку рулона i, она возвращает случайное число от 1 до 6.

Например: я нажал кнопку броска кубика, и он вернулся 4, так что теперь я хочу переместить моего персонажа в новое положение (в ImageView place4).

Вот мой код:

var girl: UIImageView! 
var place4 = UIImageView(image: UIImage(named: "4.png")) 

girl.frame = CGRect(x: 200, y: 200, width: 45, height: 100) 
scrollView.addSubview(girl) 

place4.frame = CGRect(x: 210, y: 145, width: 60, height: 30) 
scrollView.addSubview(place4) 

func moveCharacter(sender:UIButton!) { 
let duration = 1.0 
    let delay = 0.0 // delay will be 0.0 seconds (e.g. nothing) 
    let options = UIViewAnimationOptions.CurveEaseInOut // change the timing curve to `ease-in ease-out` 

    UIView.animateWithDuration(duration, delay: delay, options: options, animations: { 
     // any changes entered in this block will be animated 
     self.girl.center = CGPointMake(self.place4.center.x, self.place4.center.y - 30) 

     }, completion: { finished in 
      // any code entered here will be applied 
      // once the animation has completed 

      //self.place4.hidden = true 

    }) 
} 

Когда я нажать кнопку, UIImageView "девочка" должна перейти к X и Y координаты UIImageView "place4". Чтобы переместить символ новой позиции я использую следующий код:

self.girl.center = CGPointMake(self.place4.center.x, self.place4.center.y - 30) 

и девочка изображение должно появиться над place4 изображения, но на самом деле девушка изображение появляется за place4 изображения, пожалуйста, смотрите на скриншот:

enter image description here

Но на самом деле то, что я пытаюсь достичь это:

enter image description here

Я пытался использовать UIView меня thods bringSubviewToFront и sendSubviewToBack, но он не помог.

Как исправить эту проблему? Или, может быть, вы, ребята, можете посоветовать мне лучшее решение?

Спасибо всем заблаговременно.

ответ

1

Добавить девушку после того, как вы добавите место4.

scrollView.addSubview(place4) 

Результат должен быть таким:

girl.frame = CGRect(x: 200, y: 200, width: 45, height: 100) 

place4.frame = CGRect(x: 210, y: 145, width: 60, height: 30) 

scrollView.addSubview(place4) 
scrollView.addSubview(girl) 
+0

Конечно. Спасибо, исправлено :) – dakath

0

Попробуйте это ....

var girl: UIImageView! 
var place4 = UIImageView(image: UIImage(named: "4.png")) 

place4.frame = CGRect(x: 210, y: 145, width: 60, height: 30) 
scrollView.addSubview(place4) 

girl.frame = CGRect(x: 200, y: 200, width: 45, height: 100) 
scrollView.addSubview(girl) 

func moveCharacter(sender:UIButton!) { 
    let duration = 1.0 
    let delay = 0.0 // delay will be 0.0 seconds (e.g. nothing) 
    let options = UIViewAnimationOptions.CurveEaseInOut // change the timing curve to `ease-in ease-out` 

    UIView.animateWithDuration(duration, delay: delay, options: options, animations: { 
     // any changes entered in this block will be animated 
     self.girl.center = CGPointMake(self.place4.center.x, self.place4.center.y - 30) 

    }, completion: { finished in 
     // any code entered here will be applied 
     // once the animation has completed 

     //self.place4.hidden = true 
    }) 
} 
Смежные вопросы