2011-01-10 55 views
0

在我创建的应用程序中,我有一个名为AdvancedView1的UIView。用户可以在屏幕上拖动视图。用户需要将视图拖到屏幕上的某个位置。如果视图被放入某个区域,则该视图将“捕捉”到一个定义的位置。尝试使用IF AND语句时,出现错误。有什么建议么?使用IF语句设置UIView的位置

另外“origin”是在.h文件中声明的CGPoint。

- (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); 
    } 
} 
} 

我“的东西不是一个结构或联合‘

回答

1

origin变量得到以下错误为“origin.x> = ...”

’请求构件”×范围仅限于第一个块,并且在第二个块中不可见。将其声明移至功能范围:

- (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); 
     } 
    } 
}