1

私はかなりの時間を検索しましたが、これまでのところ正確な問題を見つけることができませんでした。

InterfaceBuilderでmapViewを作成しました。ボタンをクリックするだけで、別のビューを追加します。

self.buttonView = [[ButtonView alloc] init];
self.buttonView.backgroundColor = [UIColor whiteColor];
[self.view addSubview:self.buttonView];

作成したbuttonViewで、次のようにプログラムで5つのボタンを作成します。

UIButton *button1 = [UIButton buttonWithType:UIButtonTypeRoundedRect];
button1.frame = CGRectMake(25, 275, 100, 30);
[button1 setTitle:@"button1!" forState:UIControlStateNormal];
[self addSubview:button1];

ボタンは正しく表示されますが、クリックできません。私はいくつかのことを試しましたが、今のところ何もうまくいかないようです。ボタンをクリックするたびに、mapViewがクリックされます。たとえば、ボタンをダブルクリックすると、mapViewがズームインします。mapViewとbuttonViewはどちらも「ビュー」のサブビューです。

buttonViewをmapView(実行)の上に配置し、mapViewをbuttonView(実行)の下にスクロールし、ボタンは(実行する)位置にとどまるようにしたいのですが、クリックできません

ヘルプは大歓迎です!:-)

編集1:試してみself.buttonView.userInteractionEnabled = YES;ました-何も変更しません。(ボタン自体にも!

4

5 に答える 5

3

非常に単純な間違いです。私の「上部」ビューは表示されず、:Sの下のボタンをクリックすることを拒否されました。

于 2012-05-01T15:20:56.023 に答える
1

Interface Builderを使用しましたが、ボタンが表示されませんでした。ボタンが表示されて正しい位置になるまで、MKMapViewを非表示に設定する必要がありました。次に、MKMapViewを表示に設定します。

ボタンを表示するためにInterfaceBuilderで実行する必要のある手順は次のとおりです

  1. ビューを含むUIViewControllerを作成します
  2. MKMapViewを追加し、制約を設定します

IBのViewControllerのMKMapViewを示しています

  1. MKMapViewと同じビューにUIButtonを追加し、画像とテキストを設定します。ボタンのサイズを変更したり移動したりしようとしたときにMKMapViewが消えた場合は、マップビューの幅と高さがゼロに設定されています。マップビューのサイズインスペクターに新しい値を入力すると、サイズが元に戻ります。または、ボタンをMKMapViewの別の場所に移動してから、ボタンを目的の場所に戻すこともできます。

  2. 重要な部分は、UIButtonの制約を設定することです。サイズと配置が正しくなるまでMKMapViewを非表示に設定してから、表示に戻しました。

    IBに制約があるMKMapViewの上にUIButtonを示しています

シミュレーターでの表示は次のとおりです

マップのボタンが付いた実行中のアプリを示しています

于 2014-11-12T21:39:44.137 に答える
0

タイプミスかどうかわからない:self.buttonViewにサブビューを追加する必要がありますか?

[self.buttonView addSubview:button1]

それが役立つのを見てください

于 2012-04-25T03:16:11.957 に答える
0

私はかつて少し似たようなケースがありました、そして解決策は

[button1 setExclusiveTouch:YES];

コントロール要素の下のビューがタッチイベントも処理する場合、コントロールが予期しない方法で機能する可能性があります。

于 2012-04-25T13:19:06.923 に答える
0

Cartogaphyを使用して、@Mariaと同様に高さと幅の制​​約を設定する必要もありました。したがって、以下は機能しません。

categoryButton.addTarget(self, action: "toggleCategoryDropdown:", forControlEvents: UIControlEvents.TouchUpInside)
categoryButton.backgroundColor = UIColor.purpleColor()
categoryButton.userInteractionEnabled = true

self.addSubview(categoryButton)

constrain(categoryButton) {
    categoryButton in

    categoryButton.top == categoryButton.superview!.top + 26
    categoryButton.left == categoryButton.superview!.left + globalConfig.margin
}

しかし、これはうまくいきました

categoryButton.addTarget(self, action: "toggleCategoryDropdown:", forControlEvents: UIControlEvents.TouchUpInside)
categoryButton.backgroundColor = UIColor.purpleColor()
categoryButton.userInteractionEnabled = true

self.addSubview(categoryButton)

constrain(categoryButton) {
    categoryButton in

    categoryButton.top == categoryButton.superview!.top + 26
    categoryButton.left == categoryButton.superview!.left + globalConfig.margin
    categoryButton.width == 100
    categoryButton.height == 100
}
于 2015-12-23T19:34:24.860 に答える