UIScrollViewでUIButtonを使用していますが、スクロールビューをズームするとボタン位置が修正されません...ある場所で修正する方法はありますか?UIScrollViewでUIButtonを修正する方法は?
1
A
答えて
0
スクロールビューを変更したときにボタンを一定のサイズと位置に維持するには、スクロールビューにボタンを配置しないことをおすすめします。スクロールビューの親ビューにボタンを追加すると、スクロールビューの変更の影響を受けず、その上にオーバーレイすることができます。
0
ボタンをスクロールビューの外側に配置し、ページの下部に固定する必要があります。このようにして、スクロールビューのコンテンツは変更されますが、ボタンはビューに静的に固定されたままになります。
0
iOS 11の場合、UIScrollView
のインスタンスプロパティはframeLayoutGuide
です。スクロールビューの非形質転換フレーム矩形に基づい
var frameLayoutGuide: UILayoutGuide { get }
レイアウトガイド:
frameLayoutGuide
は、次の宣言を有しています。
あなたはそのコンテンツの長方形とは対照的に、明示的に、スクロールビュー自体のフレーム矩形を伴う自動レイアウトの制約を作成する場合、このレイアウトガイドを使用してください。
以下スイフト4 UIViewController
実装はUIScrollView
内部UIButton
をセンタリングするためにframeLayoutGuide
を使用する方法を示します。
import UIKit
class ViewController: UIViewController {
@IBOutlet weak var scrollView: UIScrollView!
let button = UIButton(type: .system)
let imageView = UIImageView(image: UIImage(named: "LargeImage"))
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
}
override func viewDidLoad() {
super.viewDidLoad()
// Add imageView as a scrollable subview of scrollView and set its constraints
scrollView.addSubview(imageView)
imageView.translatesAutoresizingMaskIntoConstraints = false
imageView.leadingAnchor.constraint(equalTo: scrollView.contentLayoutGuide.leadingAnchor).isActive = true
imageView.trailingAnchor.constraint(equalTo: scrollView.contentLayoutGuide.trailingAnchor).isActive = true
imageView.topAnchor.constraint(equalTo: scrollView.contentLayoutGuide.topAnchor).isActive = true
imageView.bottomAnchor.constraint(equalTo: scrollView.contentLayoutGuide.bottomAnchor).isActive = true
// Add button as a subview of scrollView and set its constraints (centered)
button.setTitle("Button", for: .normal)
scrollView.addSubview(button)
button.translatesAutoresizingMaskIntoConstraints = false
button.centerXAnchor.constraint(equalTo: scrollView.frameLayoutGuide.centerXAnchor).isActive = true
button.centerYAnchor.constraint(equalTo: scrollView.frameLayoutGuide.centerYAnchor).isActive = true
}
}
0
関連する問題
- 1. UIScrollViewの上にUIButtonを修正しました
- 2. UIButtonはUIScrollViewの
- 3. UIImageView(UIScrollView上)のUIButton
- 4. UIScrollViewはUIButtonをカバーします
- 5. UIButtonはuiscrollViewで機能しません
- 6. UIButtonはUIScrollViewで対話しません
- 7. UIButtonとUITapGestureRecognizerを持つUIScrollView
- 8. UIScrollViewにUIButtonを追加する問題
- 9. 方法を修正する方法
- 10. これを修正する方法は?
- 11. は、システムデータPDBを修正する方法
- 12. はInvalidMappingExceptionを修正する方法
- 13. whileループを修正する方法は?
- 14. DjangoでCreateviewを修正する方法
- 15. ビジュアルコンポーザーでCSSを修正する方法
- 16. simplexmlでデータを修正する方法
- 17. フォームで「チェックボックス」を修正する方法
- 18. NoSuchElementExeptionをJavaで修正する方法
- 19. only_full_group_byでクエリグループを修正する方法
- 20. jQuery.validatorでコードを修正する方法
- 21. Javaでjava.lang.ClassCastExceptionを修正する方法
- 22. "subLayout"をAndroidで修正する方法
- 23. PygameでUnboundLocalErrorを修正する方法
- 24. IE11でフレックスボックススタイルを修正する方法
- 25. NoClassFoundErrorをandroidで修正する方法
- 26. jQueryMobileでヘッダーを修正する方法
- 27. UIScrollViewにUIButtonを追加し、UIScrollViewをUIViewに追加します。
- 28. Eclipseの修正方法は?
- 29. スクリプトの修正方法は?
- 30. オーバーラップの修正方法は?
これは最も簡単な方法ですか? –
はい、これが最も簡単な方法です。それ以外の場合は、スクロールビューがスクロールビューをスクロールして静的に見えるようにする場合は 'scrollViewDidScroll:'を実装する必要があり、スクロールビューが拡大表示されるようにボタンの変換をリセットするには 'scrollViewDidZoom:'同じサイズを保つ。これはよりコストがかかり、実装するためにより多くの作業が必要になります。 'UIScrollView'階層の外側にボタンを追加すると、特別な作業は必要ありません。 – Dima