0

現時点では、スクロールビューにズームするボタンがあります。ズームしたときにボタンが画像上の位置と同じ位置にとどまるようにしましたが、ボタンの原点が(0,0)であるため、約1センチ移動します。とにかく、ボタンの原点をボタンの真ん中に設定することはできますか?

ボタンの表示方法:

UIButton *btn1 = [UIButton buttonWithType: UIButtonTypeDetailDisclosure];
[btn1 addTarget:self action:@selector(_openMiamiPage:) forControlEvents:UIControlEventTouchUpInside];
btn1.tag = kAddContactButton;
[_mapContentView addSubview:btn1];

-plist からコーディナトンを取得します。

4

2 に答える 2

1
btn1.center = GCPointMake(0,0);
于 2012-11-20T16:01:23.997 に答える
1

とにかく、ボタンの原点をボタンの真ん中に設定することはできますか?

話している座標系を具体的にすると役立ちます。ボタンを含むすべてのビューは、(少なくとも) 2 つの座標系で動作します: それ自身の座標系とそのスーパービューの座標系です。ビュー自体の座標系は、ビュー自体が描画される座標系です。スーパービューの座標系は、ビューがスーパービュー内に配置される座標系です。

中心がスーパービューの原点になるようにボタンを移動したいだけのようです。その場合、Hermann Klecker の答えは正しいです。ボタンのcenterプロパティを原点を表すポイントに設定するだけです。centerおよびのようなプロパティframeは、スーパービューの座標系で表されます。

更新:centerプロパティは、フレームの中心を表します。それを変更すると、間違いなくボタンが移動します。(0,0) を割り当ててcenterも、ボタンが目的の場所に移動しなかった場合、ボタンのスーパービューの座標系は期待したものではありません。ボタンがスクロール ビューにあると言いますが、ボタンのスーパービューはスクロール ビュー自体ではなく、スクロール ビューのコンテンツ ビューであることを認識する必要があります。ボタンを (0,0) に設定すると、ボタンcenterがコンテンツ ビューの左上隅 (スクロール ビュー内で移動する領域) に移動します。コンテンツが下にスクロールしている間、ボタンを静止したままにしたい場合は、ボタンをスクロール ビューの内側ではなく、スクロール ビューの上部に配置します。

于 2012-11-20T16:11:17.467 に答える