いくつかの例を見た後、PanGestureRecognizer で Image ビューを移動できるウィンドウを作成しようとしています。何が欠けているのかわかりません。
- UIView オブジェクトを作成して初期化しました
- また、両方のビューのパン用に UIGestureRecognizer を作成しました。
- ジェスチャー認識時に選択するメソッドを作成しました。
何が欠けているかについての考えがあれば、読んでいただければ幸いです。
これが私のコードです:
Controller.h を表示
#import <UIKit/UIKit.h>
#import "bouton.h"
@interface ATSViewController : UIViewController {
boutonHome *bouton; }
@property (retain, nonatomic) boutonHome *bouton;
-(IBAction)handlePanGesture:(UIPanGestureRecognizer*)sender;
@end
Controller.m を表示
- (void)viewDidLoad
{
[super viewDidLoad];
UIImage *image = [UIImage imageNamed:@"back.png"];
CGRect frame = CGRectMake(0, 0, image.size.width, image.size.height);
// Set self's frame to encompass the image
bouton.frame = frame;
bouton.boutonImage = image;
[self.view addSubview:bouton];
UIPanGestureRecognizer *panGesture = [[UIPanGestureRecognizer alloc] initWithTarget:self action:@selector(handlePanGesture:)];
[bouton setUserInteractionEnabled:YES];
[bouton addGestureRecognizer:panGesture];
[self.view setUserInteractionEnabled:YES];
[self.view addGestureRecognizer:panGesture];
// Do any additional setup after loading the view, typically from a nib.
}
-(IBAction)handlePanGesture:(UIPanGestureRecognizer *)sender
{
CGPoint translate = [sender translationInView:self.view];
CGRect newFrame = bouton.frame;
newFrame.origin.x += translate.x;
newFrame.origin.y += translate.y;
sender.view.frame = newFrame;
if(sender.state == UIGestureRecognizerStateEnded)
bouton.frame = newFrame;
}
BoutonHome.h
#import <Foundation/Foundation.h>
@interface boutonHome : UIView
{
UIImage *boutonImage;
}
@property (nonatomic, retain) UIImage *boutonImage;
// Initializer for this object
@end
boutonHome.m
#import "bouton.h"
@implementation boutonHome
@synthesize boutonImage;
@end