아래 텍스트 중심 버튼 내가 UIButton
의 아이콘 아래 중앙 텍스트이 클래스를 사용하고 있습니다 : 그것은 잘 작동하고StackView - 이미지
@IBDesignable
class TopIconButton: UIButton {
override func layoutSubviews() {
super.layoutSubviews()
let kTextTopPadding:CGFloat = 3.0;
var titleLabelFrame = self.titleLabel!.frame;
let labelSize = titleLabel!.sizeThatFits(CGSize(width: self.contentRect(forBounds: self.bounds).width, height: CGFloat.greatestFiniteMagnitude))
var imageFrame = self.imageView!.frame;
let fitBoxSize = CGSize(width: max(imageFrame.size.width, labelSize.width), height: labelSize.height + kTextTopPadding + imageFrame.size.height)
let fitBoxRect = self.bounds.insetBy(dx: (self.bounds.size.width - fitBoxSize.width)/2, dy: (self.bounds.size.height - fitBoxSize.height)/2)
imageFrame.origin.y = fitBoxRect.origin.y
imageFrame.origin.x = fitBoxRect.midX - (imageFrame.size.width/2)
self.imageView!.frame = imageFrame;
// Adjust the label size to fit the text, and move it below the image
titleLabelFrame.size.width = labelSize.width
titleLabelFrame.size.height = labelSize.height
titleLabelFrame.origin.x = (self.frame.size.width/2) - (labelSize.width/2)
titleLabelFrame.origin.y = fitBoxRect.origin.y + imageFrame.size.height + kTextTopPadding
self.titleLabel!.frame = titleLabelFrame
self.titleLabel!.textAlignment = .center
}
}
. 내 문제는 UIStackView
에서 사용할 때입니다. 내가 서로 옆에 5 개의 버튼을 가지고 있으므로 UITabBar
과 비슷한 것을 만들고 있습니다. 가운데 버튼을 화면 가운데에 놓고 싶지만 항상 옆으로 몇 픽셀 있습니다. UIStackView
에 대한 제약 조건을 확인하고 괜찮습니다. 중간에있는 모든 버튼을 제거하고 정확히 중간에 있습니다. UIStackView
(채우기, 가운데 맞춤, 등등 채우기 등)에 대해 다른 옵션을 시도했습니다. 아무것도 도움이되지 않습니다. 누구든지 어떤 생각을 가지고 있습니까? 각 버튼마다 크기가 다른 아이콘이 있고 텍스트도 다릅니다 (무료, 프리미엄 등 - 때로는 아이콘 크기가 작을 수도 있음). 관련성이 있습니까?
내 StackView의 예 (중간입니다 빨간색 선은 방송) :