Установка положения UIView с помощью оператора IF - PullRequest
0 голосов
/ 10 января 2011

В приложении, которое я создаю, у меня есть UIView с именем AdvancedView1. Пользователь может перетащить вид вокруг экрана. Пользователь должен перетащить вид в определенную позицию на экране. Если вид сбрасывается в определенную область, он «привязывается» к определенному месту. При попытке использовать операторы IF AND я получаю сообщение об ошибке. Есть предложения?

Также "origin" - это CGPoint, объявленный в файле .h.

- (void)pan:(UIPanGestureRecognizer *) gesture
{
if (gesture.state == UIGestureRecognizerStateChanged) 
 {
     CGPoint origin = [gesture locationInView:[self superview]];
     [self bringSubviewToFront:[self superview]];
     [self setCenter:origin];            
}   
if (gesture.state == UIGestureRecognizerStateEnded) 
{
    if (origin.x >= 574.0 && origin.x <= 724.0 ) {
    self.frame = CGRectMake(574.0, 184.0, self.frame.size.width,   self.frame.size.height);
    }
}   
}

Я получаю следующую ошибку для "origin.x> = ...."

"Запрос на член" x "в чем-то, не являющемся структурой или объединением"

1 Ответ

1 голос
/ 10 января 2011

origin область действия переменной ограничена 1-м блоком if и не видна во 2-м блоке.Переместите объявление в область действия функции:

- (void)pan:(UIPanGestureRecognizer *) gesture
{
   CGPoint origin = [gesture locationInView:[self superview]];
   if (gesture.state == UIGestureRecognizerStateChanged) 
   {     
        [self bringSubviewToFront:[self superview]];
        [self setCenter:origin];            
   }   
   if (gesture.state == UIGestureRecognizerStateEnded) 
   {
       if (origin.x >= 574.0 && origin.x <= 724.0 ) {
          self.frame = CGRectMake(574.0, 184.0, self.frame.size.width,   self.frame.size.height);
       }
   }   
}
...