2016-08-03 13 views
0

これは達成しようとしているレイアウトです。iOS - 背景画像上の特定の領域内に固定されたビューを配置する方法

enter image description here

私はiPhoneで背景の小さな円形の領域内に円形の黄色のボタンを配置します。円形の領域は、その画像の中央に配置されていません。

これは、これまで私が試したものである:

  • まず、Iは、1ピクセルのXの1ピクセル、全体のレイアウトの中心に透明な背景色とのUIViewを追加しました。私はそれを中心点と呼ぶ
  • 次に、中心点と黄色のボタンの間に垂直間隔を設定します。
  • また、黄色のボタンとスーパービューの間に先行する制約を設定します。
  • 次に、アスペクト比(黄色のボタン幅を黄色のボタンの高さ)に設定します。
  • 別のアスペクト比(黄色のボタンから背景イメージ)。

しかし、結果は、私はそれがあるべき期待するものは本当にないです。背景画像が歪んでいる場合は、黄色のボタンを背景画像の円形領域の内側に残しておきます。

ありがとうございます!私はそこまで行かないだろう

答えて

1

し、適切な乗数を設定:次に、以下に類似したコードを使用値は214:640です。これにより、画面サイズが大きくなるにつれて円が正しい量だけ右に移動します。

同様に、円の下端を画像ビューの下端に合わせ、乗数を478:900のような適切な値に設定すると、画面の拡大に合わせてサークルを整列させた状態に保ちます。

携帯電話のサイズ(iPhone 5Sのような)がよく見えるようになるまで、比率で再生すると、6Sと6S Plusで動作します。

は、画像表示幅に等しい円の幅を設定し100:320に乗数を設定します。私はまだ、いくつかの特定のポイントでの位置であることが必要である他のボタンを持っている場合(実際に私が持っていない)何

0

、私は黄色の円を含めた全体画像とボタン画像を設定し、画面全体にフィットボタン一つになるだろう。画像ビューの後縁と円形の後縁を整列させる制約を設定し、背景にサークルを位置決めする

- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event 
{ 
    UITouch *touch = [touches anyObject]; 

    // Get the specific point that was touched 
    CGPoint point = [touch locationInView:self.view]; 
    if (point.x * 100/parentView.width in range (0-100) && point.y*100/parentView.heiht in range (0-100)){ 
     // write your button event handler here. 
    } 

} 
+0

うーん、。ラインの上に置かなければならない他のボタンがあります。申し訳ありませんが、私はそれについて言及しませんでした。 ちょうど言ったことをすることで、私はすべてのボタンが付いた画像を作って、タッチポイントを検出するだけです。しかし、タッチポイントを正しく検出することも問題ではありませんか? –

+0

アプリケーションの外観を心配する必要があります。コードの親の幅と高さに基づいて、各ボタンの領域を簡単に見つけることができます。私はあなたのために私の答えを編集します。 –

+0

あなたのボタンが垂直方向と水平方向の両方でカバーするパーセンテージの範囲だけを言うことができるように答えを修正しました。それは今簡単にすべきだ –

関連する問題