スーパービューに複数のビューがあります。他のビューを重ねたり触れたりせずにuiimageviewをドラッグするにはどうすればよいですか。どんな助けでも大歓迎です。
質問する
782 次
1 に答える
1
私は同様のタイプのものを実装しました。ここにコードスニペットを投稿しています。Draggable は、画像を含む他のクラスにインポートする必要があるクラスです。
1) Draggable.h
#import <UIKit/UIKit.h>
@interface Draggable : UIImageView
{
CGPoint startLocation;
}
@end
2) Draggable.m
#import "Draggable.h"
@implementation Draggable
- (id)initWithFrame:(CGRect)frame
{
self = [super initWithFrame:frame];
if (self) {
// Initialization code
}
return self;
}
- (void) touchesBegan:(NSSet*)touches withEvent:(UIEvent*)event {
// Retrieve the touch point
CGPoint pt = [[touches anyObject] locationInView:self];
startLocation = pt;
[[self superview] bringSubviewToFront:self];
}
- (void) touchesMoved:(NSSet*)touches withEvent:(UIEvent*)event {
// Move relative to the original touch point
CGPoint pt = [[touches anyObject] locationInView:self];
CGRect frame = [self frame];
frame.origin.x += pt.x - startLocation.x;
frame.origin.y += pt.y - startLocation.y;
[self setFrame:frame];
}
@end
3) ProfilePicViewController.m - 画像を含む私のクラス
#import "Draggable.h"
UIImageView *dragger;
-(void)viewWillAppear:(BOOL)animated
{
UIImage *tmpImage = [UIImage imageNamed:@"icon.png"];
CGRect cellRectangle;
cellRectangle = CGRectMake(0,0,tmpImage.size.width ,tmpImage.size.height );
dragger = [[Draggable alloc] initWithFrame:cellRectangle];
[dragger setImage:tmpImage];
[dragger setUserInteractionEnabled:YES];
[self.view addSubview:dragger];
}
ここで、「ドラッガー」を他の画像にドラッグできます。適切な画像サイズであることを確認してください。icon.png のサイズは 48X48 です。そのため、画面に収まる画像サイズを用意してください。
これが少し役立つことを願っています。
于 2013-02-01T12:03:01.687 に答える