【发布时间】:2012-08-22 04:17:08
【问题描述】:
我有一个包含 UIScrollView 的视图。 UIScrollView 包含一个 UIImageView (现在只有一个,但以后会有更多)。我希望能够将 UIImageView 从 UIScrollView 拖到 superview 中。
我已经查看了我可以在网上找到的所有类似问题和示例,但仍然无法理解它是如何工作的。
起初我无法在滚动视图中注册所有内容。经过大量搜索,我找到了一种获取touches开始注册的方法,如下所示:
首先我创建了一个新的基于视图的项目,并在自动创建的“ViewController.h”中 我创建了一个名为滑块的 IBOutlet。
然后在自动创建的“ViewController.m”中创建了 UIScrollview。
在 IB 中,我向情节提要添加了一个 UIScrollView,然后将其连接到“滑块”IBOutlet。
接下来我将类文件添加到项目中。这个新类是 os UIImageView 的子类。我将这个类命名为“DragableImage”在
然后在 IB 中,我将图像放入 UIScrollview 点击它并将类更改为“DragableImage”
在 DragableImage.m 中,我开始进行无效的触摸,并简单地告诉它在单击时隐藏。
这有效,触摸注册并使图像消失,但我现在如何将新图像添加到主视图并让它跟随我的手指?
这就是我的代码方式:
ViewController.h
#import <UIKit/UIKit.h>
@interface ViewController : UIViewController {
IBOutlet UIScrollView *slider;
}
@end
ViewController.m
#import "ViewController.h"
@interface ViewController ()
@end
@implementation ViewController
- (void)viewDidLoad
{
[slider setScrollEnabled:YES];
[slider setContentSize:CGSizeMake(306, 1560)];
[slider setShowsVerticalScrollIndicator:NO];
slider.canCancelContentTouches = NO;
slider.delaysContentTouches = NO;
[super viewDidLoad];
// Do any additional setup after loading the view.
}
- (BOOL)shouldAutorotateToInterfaceOrientation: (UIInterfaceOrientation)interfaceOrientation
{
return YES;
}
@end
DragableImage.h
#import <UIKit/UIKit.h>
@interface DragableImage : UIImageView
@end
DragableImage.m
@implementation DragableImage
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
self.hidden = YES;
}
@end
如何做到这一点?
【问题讨论】:
标签: ios xcode uiscrollview scrollview