1
の乗数値を変更します。各タイトルの下に小さなバーがあり、Youtubeアプリと同様に、ユーザーがどのページ/アイテムを表示しているかを示します。は、私は約30ピクセルの高 、いくつかの異なるタイトルでCollectionViewControllerの一番上に座ってメニューバーを持っている制約
horizontalBarWidthAnchorConstraint
の乗数値は、ハードので
horizontalBarWidthAnchorConstraint
の乗数を変更しようとしてきた、私は別のビューコントローラ全体ビューを複数回再利用したい1/4
の価値ででコーディングされている
class MenuBar : UIView {
var menuSectionTitles = ["Title1","Title2", "Title3","Title4"]
var numberOfSectionsInHorizontalBar : CGFloat?
var horizontalBarLeftAnchorConstraint: NSLayoutConstraint?
var horizontalBarWidthAnchorConstraint: NSLayoutConstraint?
override init(frame: CGRect) {
super.init(frame: frame)
setupHorizontalBar()
}
required init?(coder aDecoder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
func setupHorizontalBar() {
let horizontalBarView = UIView()
horizontalBarView.backgroundColor = UIColor.rgb(10, green: 150, blue: 255)
horizontalBarView.translatesAutoresizingMaskIntoConstraints = false
addSubview(horizontalBarView)
horizontalBarLeftAnchorConstraint = horizontalBarView.leftAnchor.constraint(equalTo: self.leftAnchor)
horizontalBarLeftAnchorConstraint?.isActive = true
horizontalBarView.bottomAnchor.constraint(equalTo: self.bottomAnchor).isActive = true
// Set the multiplier/width of the horizontal bar to indicate which page the user is on
horizontalBarWidthAnchorConstraint = horizontalBarView.widthAnchor.constraint(equalTo: widthAnchor, multiplier: 1/4)
horizontalBarWidthAnchorConstraint?.isActive = true
horizontalBarView.heightAnchor.constraint(equalToConstant: 3).isActive = true
}
}
そう:
class ViewController: UICollectionViewController {
lazy var menuBar : MenuBar = {
let mb = OptionsBar()
mb.menuOptions = ["Title1", "Title2", "Title3"]
mb.translatesAutoresizingMaskIntoConstraints = false
mb.horizontalBarWidthAnchorConstraint?.constant = 1/3
return mb
}()
}
しかし、この方法は機能しません。私は、ViewController内部から乗数の値を変更する方法を見つけることができません。ここでのコードでは
は理にかなって、このからの完全な答えを思い付くために管理:)あなたは、私は正しい答えマークされますができれば、あなたの答えに私の編集が正しいことを確認してください – luke