申し訳ありません、私はここでスイフト3で働いています。そして、私はuicollectionviewsに新しいです。私はプログラムで、ラベルのサブビューとしてUICollectionReusableView
のコレクションビューにラベルを追加しようとしています。他のビューと同じようにラベルを追加しましたが、ヘッダーのラベルにCENTERというラベルを付けることはできません。ここでSwift 3:プログラムでCollectionviewヘッダのラベルを正しく作成できますか?
は私のラベルコードは、ストーリーボードのヘッダに追加されたカスタムヘッダークラス、である:
let pointsLabel = UILabel()
override init(frame: CGRect) {
super.init(frame: frame)
self.customInit()
}
required init(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)!
self.customInit()
}
func customInit() {
//center inside content
pointsLabel.frame = CGRect(x: 0, y: 0, width: self.bounds.width, height: 100)
pointsLabel.center = CGPoint(x: self.bounds.width * 0.5, y: self.bounds.height * 0.5)
pointsLabel.textColor = UIColor.darkGray
pointsLabel.textAlignment = .center
pointsLabel.text = "Testing 123"
pointsLabel.font = UIFont(name: "Montserrat", size: 30)
self.addSubview(pointsLabel)
}
私Collectionviewは、いずれかの側に余裕を持っている。しかし
self.collectionView.contentInset = UIEdgeInsets(top: 0, left: 32.5, bottom: 0, right: 32.5)
これはヘッダービューのサイズに影響を与えるだけで、ラベルはheader.bounds.width * 0.5の中央に配置されている必要があります。そして私は、テキストの配置を中心に、まだテキストが左に偏っている:
ことができます場合は、私のコレクションビューは、メッセージアプリの拡張機能の中にあるが、やはり私はそれがどのように変化するか分かりませんもの。ここで何が間違っていますか?
さえ持つ:
pointsLabel.frame = CGRect(x: 0, y: 0, width: self.bounds.width, height: 100)
//pointsLabel.center = CGPoint(x: self.bounds.width * 0.8, y: self.bounds.height * 0.5)
pointsLabel.center = self.center
pointsLabel.textColor = UIColor.darkGray
pointsLabel.backgroundColor = UIColor.blue
以下に私の幅を変え、私が手:
なぜ?
あなたは 'pointsLabel.center = self.center'を試しましたか? centerプロパティをまったく設定しないことでこの問題を解決することもできます。テキストの配置を.centerに設定しているので、基本的にはテキストの中心になっています。欠けているのは、ラベルの幅が正しくないことだけです。これは 'pointsLabel'の背景色を設定するか、Xcode UIデバッガを使って確認できます。 – werm098
私の編集を確認してください - まだ左にオフセットします – skyguy
これは、オフセットがcontentInset(32.5)の左右の埋め込みと同じように見えます。 'pointsLabel'フレームのx座標を32.5に設定し、centerプロパティを設定する行を削除すると、中央にラベルを付ける必要があります。 – werm098