私は画面の中央に150x150のメインImageviewを配置していますが、ランダムなxとyの値とランダムな幅と高さを持つビューをプログラムで作成しています値)。私はビューがメインのイメージビューを囲むが、それに触れないようにしたい。また、y軸には、self.view.frameと35の高さを持つタブバーがあり、これらのビューに触れたくない場合もあります。何か案は?UIViewsを触れないようにする方法
0
A
答えて
1
デカルト座標(xとy)の代わりに、極座標(角度と半径、参照を画像ビューの中心にする)をランダム化しないのはなぜですか?あなたが角度と半径を持っていれば、中心からの距離を制御する方が簡単になります。あなたのランダムな幅と高さがどのようになっているかに応じて半径を増やすことができます。そのため、衝突を補正し回避するために中心から離れています。
let centerImageView = UIImageView()
//..
//Bounding circle for the image view
let centerRadius = max(centerImageView.width, centerImageView.height)
func randomFloat(min: Float, max: Float) {
return min + (max - min) * (arc4random()/RAND_MAX)
}
//Somewhere else in your loop for generating views
let angle = randomFloat(0, Float.pi * 2)
//Dimensions of the random view
let width = randomFloat(min: 10, max: 50)
let height = randomFloat(min: 10, max: 50)
//Bounding circle, you can use an ellipse, or calculate the distance perfectly for that angle too, but this is simpler
let viewRadius = randomFloat(min: width, max: height)
//The distance from the center must be greater than the sum of both bounding circles' radiuses, plus some
let radius = centerRadius + viewRadius + randomFloat(min: 50, max: 100)
//Convert to cartesian coordinates
let x = centerImageView.center.x + cos(angle) * radius
let y = centerImageView.center.y + sin(angle) * radius
let view = UIView(frame: CGRect(x: x, y: y, width: width, height: height)
0
func intersects(_ rect2: CGRect) -> Bool
あなたの中心ビューは、新たなフレームを生成し、ランダムに、新しく作成されたビューで交差している場合。
関連する問題
- 1. 触れないように要素の輪郭を止める
- 2. サブビューに基づいてUIViewsフレームを調整する方法
- 3. Javascriptで文書のタイトルを触れられないようにする
- 4. UIViewsを変更せずにトランジションアニメーションを作成する方法
- 5. スクロールバーがあるときに地図に触れないようにします
- 6. Swingアプリケーションに触れる方法を教えてください。
- 7. ImageViewが動作していないときに触覚フィードバックを行う方法
- 8. ピンに触れずにMKAnnotationViewのコールアウトビューをトリガする方法は?
- 9. アプリ全体に触れるときにキーボードを消す方法
- 10. ビューの後ろには触れないようにしますか?
- 11. UITableView - セクション0のヘッダーラベルがテーブルのヘッダーに触れないようにします。
- 12. ng-formに触れるかどうかを確認する方法
- 13. スクロールビューのように触れて画像を移動する
- 14. UIViewsとSKNodes間のポイントを変換する方法
- 15. 接触可能なコンポーネントにステートレスコンポーネントを追加する方法
- 16. HTMLに触れることなくCSSクラスをオーバーライドする方法
- 17. Android OpenGL ESに触れたオブジェクトを特定する方法
- 18. Libgdx:敵に触れたかどうかを検出する方法は?
- 19. 迷路を生成するときにコーナーを触れないようにするには
- 20. Fを使用しているときに、Api Controllerの新しいメソッドごとにDIコンテナに触れないようにする方法#
- 21. キャンバスに触れるとiOS Chromeが淡色表示にならないようにするにはどうすればよいですか?
- 22. オブジェクトが色に触れているときを検出する方法は?
- 23. パネル内の円を境界線に触れさせない方法は? (Java Graphics)
- 24. 2つの画像が互いに接触するようにコードする方法は?
- 25. 特定の場所に触れるときにジェスチャーをタップしないようにする - SpriteKit
- 26. iPhone:どのオブジェクトに触れたかを知る方法
- 27. 画面に触れたときにアンドロイドステータスバーが表示されないようにする
- 28. アプリがアンドロイドにキャッシュされないようにする方法
- 29. 移動ボタンにはどのように触れますか?
- 30. ユーザーがアラートに触れたときにSDCAlertviewが却下されないようにするにはどうすればよいですか?
は重複して作成されたビューですか? – BJHStudios
私はむしろそうしたくないですが、ランダムなので避けるのは難しいかもしれません。 – andrewF