2

私はiPhoneプログラミングにかなり慣れていません。私は約1か月前に始めたばかりで、小さなチュートリアルタイプのアプリケーションをいじっているだけですが、とにかく、ここに私の質問があります.

現在、スクロール可能でズーム可能な UIScrollView があり、UIImageView サブビューをロードします。画像ビューにいくつかのコントロール (UIButtons) を追加したいのですが、グループ全体 (ボタンと画像) をズームインおよびズームアウトすると、一緒にズームします。 .

UIScrollView に UIButtons を追加してズームすると、画像がズームし、ボタンは元の場所に留まります

UIImageView に UIButtons を追加すると、それらは正しくズームしますが、ボタンはもうありません。つまり、インタラクティブ性が失われます。

後で、たくさんのボタンを配列に追加して追加します。

私が得ることができる助けをいただければ幸いです

これは私の mainViewController.m の一部です:

- (void)viewDidLoad

{

[scrollView2 setBackgroundColor:[UIColor blackColor]];

[scrollView2 setCanCancelContentTouches:NO];

scrollView2.clipsToBounds = YES;    // default is NO, we want to restrict drawing within our scrollview
scrollView2.indicatorStyle = UIScrollViewIndicatorStyleWhite;
scroll2ImageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"bigNH.jpg"]];
[scrollView2 addSubview:scroll2ImageView];
[scrollView2 setContentSize:CGSizeMake(scroll2ImageView.frame.size.width, scroll2ImageView.frame.size.height)];
scrollView2.minimumZoomScale = .5;
scrollView2.maximumZoomScale = 3;
scrollView2.delegate = self;
[scrollView2 setScrollEnabled:YES];




UIButton *myButton = [UIButton buttonWithType:UIButtonTypeCustom];

CGRect newSize = CGRectMake(658, 435, 50, 50); // position in the parent view and set the size of the button
myButton.frame = newSize;
[myButton setImage:[UIImage imageNamed:@"redStop.png"] forState:UIControlStateNormal];
// add targets and actions
[myButton addTarget:self action:@selector(buttonClicked:) forControlEvents:UIControlEventTouchUpInside];
// add to a view
[scroll2ImageView addSubview:myButton];

[redLineArray addObject:myButton];


[scroll2ImageView release];

}

4

3 に答える 3

0

これは役に立たないかもしれませんし、それはあなたがしたいことではありません。

ただし、スクロールビューに関連付けられたボタンが必要な場合は、親ビューを追加し、そのビューにボタンを追加し、そのビューにスクロールビューも追加します。ボタンとスクロールビューは兄弟になります。これにより、ユーザーはスクロールビューのコンテンツをスクロールできますが、ボタンが常に表示されていることが保証されます。

-isdi-

于 2009-12-24T16:20:29.223 に答える
0

デフォルトでは、UIImageView の userInteraction は無効になっています。これを変更しましたか?

また、UIImageView にサブビューを追加するのは本当に不安です。これは、実際には 1 つの画像を保持するためのものです。通常の UIView を作成し、それに UIButtons と UIImageView を追加する方がよいでしょう。ボタンが画像の上に表示されるように順序を制御するのは非常に簡単です。

PSの代わりに、あなたの人生を楽にするためだけに:

[scrollView2 setContentSize:CGSizeMake(scroll2ImageView.frame.size.width, scroll2ImageView.frame.size.height)];

使用できます:

[scrollView2 setContentSize:scroll2ImageView.frame.size];
于 2010-01-16T20:19:55.950 に答える
0

すべてのズーム可能なコンテンツ (表示されるすべてのもの) を含む単一のビューを作成し、それを contentView と呼びます。そのcontentView、imageView、およびすべてのボタンなどに必要なものをすべて配置します。

UIScrollView デリゲートに次のように配置します: (scrollView のデリゲートをまだ設定していない場合は、必ず設定してください)

- (UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView {
    return self.contentView;
}

ズームできるのは 1 つのビューだけですが、その 1 つのビューには、子ビューであるため、スケーリングされる他のビューを含めることができます。

また、scrollView の contentSize 値をズーム可能な contentView の正確なサイズに設定してください。

于 2011-01-16T02:42:47.880 に答える