【发布时间】:2013-02-26 15:15:15
【问题描述】:
我有 UIScrollView 包含许多 UIImageViews。我需要将 UIImage 从 UIScrollView 拖到另一个视图。但是我的代码仅在 UIScrollView 中拖动。我无法将图像拖动到 scrollView 之外。请帮帮我..我的代码是..
for (int i = 0; i < [myArray count]; i++) {
image = [[UIImageView alloc]initWithFrame:CGRectMake(0, y, 75, 30)];
image.userInteractionEnabled = YES;
image.backgroundColor = [UIColor blueColor];
UIPanGestureRecognizer *panRecg = [[UIPanGestureRecognizer alloc]initWithTarget:self action:@selector(labelDragged:)];
[image addGestureRecognizer:panRecg];
y=y+35;
[gScrollView addSubview:image];
}
-(void)labelDragged:(UIPanGestureRecognizer *)recognizer {
UIImageView *imageView = (UIImageView *)recognizer.view;
CGPoint newCenter = [recognizer translationInView:self.view];
if([recognizer state] == UIGestureRecognizerStateBegan) {
beginX = imageView.center.x;
beginY = imageView.center.y;
}
newCenter = CGPointMake(beginX + newCenter.x, beginY + newCenter.y);
[imageView setCenter:newCenter];
}
【问题讨论】:
-
嗯,有趣的问题。在滚动视图上尝试 setClipsToBounds:NO 看看它是否有所作为。
-
在编码之前,您希望应用程序如何知道拖动其中一个子视图和拖动以滚动之间的用户意图差异?也许使用两根手指拖动来拖动子视图?
-
@EgeAkpinar 如果您关闭剪辑,即使这样可行,也会有问题,因为一旦它“关闭”滚动视图,您可能不希望它在滚动视图滚动时移动。最重要的是,您只想将其从滚动视图中删除并将其添加到您要放置它的视图中。
-
怎么会,当构图子视图时,y 在循环中前进 35px,但视图是 75px 宽?如果你在它们之间留出空间,也许我们可以说在那个空白处拖动 == 滚动?
-
@danh , Y 只是用于将多个图像添加到滚动视图中。我使用了垂直滚动视图..
标签: iphone ios uiscrollview cgpoint