forループでスクロールビューを作成し、挿入された各要素の上にUILabel
を配置しようとしています。ただし、centerXAnchor
を各要素のcenterXAnchor
と同じに設定していても、ラベルは何らかの理由で水平に配置されません。ここで示すラベルと要素のボーダーとの画像です:見られるようにスクロールビューの各要素の上にラベルを配置しますか?
は、私が挿入していたラベルは、何らかの理由でscrollview内の各要素を水平にセンタリングされていません。
for i in 0..<petsDict.count {
let imageView = UIImageView()
imageView.image = petsDict[i]
imageView.contentMode = .scaleAspectFit
let xPos = self.view.frame.width * CGFloat(i)
imageView.frame = CGRect(x: xPos - CGFloat(20*i), y: 0, width: self.mainScrollView.frame.width, height: self.mainScrollView.frame.height)
let label = UILabel(frame: CGRect(x: 0, y: -20, width: 200, height: 40))
label.text = "Joy"
label.textAlignment = .center
imageView.addSubview(label)
label.font = UIFont(name: "SFUIText-Regular", size: 20)!
label.sizeToFit()
mainScrollView.contentSize.width = mainScrollView.frame.width * CGFloat(i + 1)
mainScrollView.addSubview(imageView)
label.centerXAnchor.constraint(equalTo: imageView.centerXAnchor).isActive = true
label.bottomAnchor.constraint(equalTo: imageView.topAnchor).isActive = true
}
なぜ私のxセンタリングが正しく機能していないのか理解できますか?