使用 IF 语句设置 UIView 的位置
Posted
技术标签:
【中文标题】使用 IF 语句设置 UIView 的位置【英文标题】:Setting position of UIView using IF statement 【发布时间】:2011-01-10 09:32:57 【问题描述】:在我正在创建的应用程序中,我有一个名为 AdvancedView1 的 UIView。用户可以在屏幕上拖动视图。用户需要将视图拖到屏幕上的某个位置。如果视图被拖放到某个区域,则视图将“捕捉”到定义的位置。尝试使用 IF AND 语句时,出现错误。有什么建议吗?
“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);
“origin.x >= ....”出现以下错误。
“在非结构或联合的情况下请求成员“x””
【问题讨论】:
【参考方案1】:origin
变量范围仅限于第一个 if 块,在第二个 if 块中不可见。将其声明移至函数范围:
- (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);
【讨论】:
以上是关于使用 IF 语句设置 UIView 的位置的主要内容,如果未能解决你的问题,请参考以下文章