私は、ユーザーがスクロールすることができる画像(より大きなiphoneの画面)を表示したいと思います。 がdifficoultないですが、私はこのコードでやった: を私の.hファイルUIImageView(UIScrollView上)のUIButton
@interface mappa1 : UIViewController <UIScrollViewDelegate> {
IBOutlet UIImageView *img;
IBOutlet UIScrollView *scroller;
}
で私の.mファイルに
UIImage *image = [UIImage imageNamed:@"prova.jpg"];
img = [[UIImageView alloc] initWithImage:image];
scroller.delegate = self;
scroller.autoresizingMask = UIViewAutoresizingFlexibleHeight | UIViewAutoresizingFlexibleWidth;
scroller.contentSize = img.frame.size;
scroller.scrollEnabled = YES;
scroller.directionalLockEnabled = NO;
scroller.userInteractionEnabled = YES;
CGSize ivsize = img.frame.size;
CGSize ssize = scroller.frame.size;
float scalex = ssize.width/ivsize.width;
float scaley = ssize.height/ivsize.height;
scroller.maximumZoomScale = 1.0;
scroller.minimumZoomScale = fmin(1.0, fmax(scalex, scaley));
scroller.zoomScale = fmin(1.0, fmax(scalex, scaley));
[scroller addSubview:img];
と
- (UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView {
return img;
}
とすべて正常に機能します。
今私はUIViewではなく、ユーザーがズームまたは画像を移動する場合、uibuttonはuiimageの動き/ズームに従いたいので、UIImageにUIButtonを追加したいです。
だから私はこのコードを追加します
UIButton *btn = [[UIButton buttonWithType:UIButtonTypeRoundedRect] retain];
btn.frame = CGRectMake(0, 0, 100, 25);
[btn setTitle:@"Play" forState:UIControlStateNormal];
[btn addTarget:self action:@selector(buttonClick) forControlEvents:UIControlEventTouchUpInside];
[img addSubview:btn];
をしかしUIButtonは "-クリックできない" です! もちろん、UIViewとUIImageViewにはUserInteractionEnabledがYESに設定されています!
ありがとうございます!
編集:私は
[scroller addSubView:btn];
を書く場合、ユーザのズーム/アウトは、UIButtonは常にビッグ100x25であれば、それは、もちろん、しかし、動作します。
scrollViews「キャンセル可能コンテンツタッチ」のプロパティがあります。 IBの属性インスペクタで見つけることができます。そのオプションをオフにしてから、試してみてください。 –
ありがとうございます、それは動作しません!また、「cancelabla content touches」のチェックを外すと、ズームが機能しません。 – JAA
UIImageのズームレベルに応じてボタンのサイズを手動で変更する必要があるかもしれません。誰かが画像をズームするたびに、ボタンのサイズを調整します。 – Cyprian