Ios 将UILabel添加到自定义UIView,但不在UIImage视图上显示
因此,我需要一些自定义视图,其中将包含一些元素。我希望能够以编程方式设置所有视图,以习惯不使用interface builder 我已添加图像,但无法使标签显示在UIImageview上。我对代码做了一些修改,但似乎无法使其正常工作。我肯定我错过了一些愚蠢的事情,但我能找到答案。下面是自定义视图的代码。将为视图控制器文件中的每个自定义视图添加图像和标签文本Ios 将UILabel添加到自定义UIView,但不在UIImage视图上显示,ios,swift,uiview,uilabel,Ios,Swift,Uiview,Uilabel,因此,我需要一些自定义视图,其中将包含一些元素。我希望能够以编程方式设置所有视图,以习惯不使用interface builder 我已添加图像,但无法使标签显示在UIImageview上。我对代码做了一些修改,但似乎无法使其正常工作。我肯定我错过了一些愚蠢的事情,但我能找到答案。下面是自定义视图的代码。将为视图控制器文件中的每个自定义视图添加图像和标签文本 import UIKit class IntroButton: UIView { let mainImage = UIIm
import UIKit
class IntroButton: UIView {
let mainImage = UIImageView()
let titalBackground = UIView()
let mainTital = UILabel()
override init(frame: CGRect) {
super.init(frame: frame)
addSubview(mainTital)
addSubview(mainImage)
addSubview(titalBackground)
setUpTital()
setUpImage()
setUpButton()
}
required init?(coder: NSCoder) {
super.init(coder: coder)
addSubview(mainTital)
addSubview(mainImage)
addSubview(titalBackground)
setUpTital()
setUpButton()
setUpImage()
}
func setUpButton() {
//basic view setup
layer.cornerRadius = 20
layer.shadowColor = #colorLiteral(red: 0, green: 0, blue: 0, alpha: 1)
layer.shadowRadius = 20
layer.shadowOpacity = 100
layer.shadowOffset = CGSize(width: 10, height: 10)
layer.masksToBounds = true
}
//helps with adding image and content to view
override var intrinsicContentSize: CGSize{
return CGSize(width: 200, height: 300)
}
func setUpImage() {
//adding image to the main view and image constraints
mainImage.contentMode = .scaleAspectFill
mainImage.translatesAutoresizingMaskIntoConstraints = false
mainImage.topAnchor.constraint(equalTo: self.topAnchor).isActive = true
mainImage.bottomAnchor.constraint(equalTo: self.bottomAnchor).isActive = true
mainImage.leadingAnchor.constraint(equalTo: self.leadingAnchor).isActive = true
mainImage.trailingAnchor.constraint(equalTo: self.trailingAnchor).isActive = true
mainImage.setContentCompressionResistancePriority(.defaultLow, for: .horizontal)
mainImage.setContentCompressionResistancePriority(.defaultLow, for: .vertical)
}
func setUpTital() {
mainTital.font = UIFont(name: "Futura", size: 25)
mainTital.textColor = .white
mainTital.translatesAutoresizingMaskIntoConstraints = false
mainTital.heightAnchor.constraint(equalToConstant: 100).isActive = true
mainTital.widthAnchor.constraint(equalToConstant: self.frame.width).isActive = true
mainTital.bottomAnchor.constraint(equalTo: self.bottomAnchor).isActive = true
mainTital.centerXAnchor.constraint(equalTo: self.centerXAnchor).isActive = true
mainTital.textAlignment = .left
mainTital.clipsToBounds = true
}
}
您最多将标签添加回变更单
addSubview(mainImage)
addSubview(titalBackground)
addSubview(mainTital) /// last 1 appears at most top
您最多将标签添加回变更单
addSubview(mainImage)
addSubview(titalBackground)
addSubview(mainTital) /// last 1 appears at most top
将图元添加到视图时,它们将按照添加顺序分层 更改此项:
addSubview(mainTital)
addSubview(mainImage)
addSubview(titalBackground)
为此:
// add main image
addSubview(mainImage)
// add tital background *on top of* main image
addSubview(titalBackground)
// add main tital *on top of* tital background
addSubview(mainTital)
将图元添加到视图时,它们将按照添加顺序分层 更改此项:
addSubview(mainTital)
addSubview(mainImage)
addSubview(titalBackground)
为此:
// add main image
addSubview(mainImage)
// add tital background *on top of* main image
addSubview(titalBackground)
// add main tital *on top of* tital background
addSubview(mainTital)