【发布时间】:2015-08-04 05:22:51
【问题描述】:
UILable 拖入 UIView 框架而不是 UIImageView 框架我正在使用以下代码使用 UIPanGestureRecognizer 进行拖拽标签
UIPanGestureRecognizer *panGesture = [[UIPanGestureRecognizer alloc] initWithTarget:self action:@selector(handlePanGesture1:)];
[panGesture setMinimumNumberOfTouches:1];
[self.imageView setBounds:CGRectMake(self.imageView.frame.origin.x,self.imageView.frame.origin.y ,self.imageView.frame.size.width, self.imageView.frame.size.height)];
[panGesture setMaximumNumberOfTouches:1];
panGesture.delegate=self;
[title addGestureRecognizer:panGesture];
panGesture = nil;
还有我的操作方法
-(void)handlePanGesture1:(UIPanGestureRecognizer *)sender
{
CGPoint translatedPoint = [(UIPanGestureRecognizer*)sender translationInView:self.imageView];
if([(UIPanGestureRecognizer*)sender state] == UIGestureRecognizerStateBegan)
{
firstX = [[sender view] center].x;
firstY = [[sender view] center].y;
}
translatedPoint = CGPointMake(firstX+translatedPoint.x, firstY+translatedPoint.y);
[[sender view] setCenter:translatedPoint];
}
【问题讨论】:
-
添加标签时为什么要设置
panGesture = nil;?这将使平移手势指针获得nil这是一种无效的方法。 (我猜你想的是非 ARC)另外,问题又是什么? -
我是 ios 新手,但尝试不使用 panGesture = nil;但在 uiview 中发出相同的标签拖动,不仅是 uiimageview
-
那是因为你应该以某种方式限制移动超出
UIImageView。例如在设置视图位置之前,您可以在计算后设置 Max 或 Min x,y 位置,让标签仅漫游到您想要的视图中。 -
我尝试了这个,但没有得到正确的 if((min_X >= self.imageView.frame.origin.x && max_X = self.imageView.frame.origin.y && max_Y
-
这个解决方案太复杂了。让我以更正确的答案回复您。
标签: uiview uiimageview uilabel uigesturerecognizer uipangesturerecognizer