У меня один из этих взглядов здесь:Swift: создание пользовательского интерфейса при вызове функции
let placeContainerView: UIView = {
let view = UIView()
view.backgroundColor = UIColor.whiteColor()
view.translatesAutoresizingMaskIntoConstraints = false
view.layer.cornerRadius = 7
view.layer.masksToBounds = true
return view
}()
И я ищу, чтобы создать рядом с ним каждый раз, когда функция «createNewView()» называется ,
let showFullPlaceContainerView = UITapGestureRecognizer(target: self, action: #selector(showFullPlaceContainerViewFunction))
placeContainerView.addGestureRecognizer(showFullPlaceContainerView)
Что я хочу, чтобы каждое из местContainerView отвечало.
Поэтому я хочу, чтобы представление было сгенерировано, и я дам ему определенные значения. И затем, когда я вызываю функцию createNewView(), я получу новое представление рядом с ним, которое будет точно таким же, за исключением любых новых значений, которые я вставляю.
Если у вас есть идеи, пожалуйста, дайте мне знать!
Спасибо
EDIT:
Приведенный ниже код демонстрирует, как я хочу, чтобы настроить placeContainerView каждый раз, но мне нужно, чтобы они были показаны так, что placeContainerView.topAnchor() каждый раз разный .. Как именно это работает, если оно хранится в своем классе и не знает, сколько раз оно было создано?
Кроме того, поскольку placeContainerView содержит placeLabel и placeImageView, они должны быть сгенерированы внутри нового PlaceContainerViewClass?
func setupPlaceContainerView() {
placeContainerView.leftAnchor.constraintEqualToAnchor(view.leftAnchor, constant: -180).active = true
placeContainerView.topAnchor.constraintEqualToAnchor(view.topAnchor, constant: 80).active = true
placeContainerView.widthAnchor.constraintEqualToConstant(227).active = true
placeContainerView.heightAnchor.constraintEqualToConstant(45).active = true
placeContainerView.addSubview(placeLabel)
placeContainerView.addSubview(placeImageLabelSeparator)
placeContainerView.addSubview(placeImageView)
placeLabel.leftAnchor.constraintEqualToAnchor(placeContainerView.leftAnchor).active = true
placeLabel.topAnchor.constraintEqualToAnchor(placeContainerView.topAnchor).active = true
placeLabel.widthAnchor.constraintEqualToConstant(180).active = true
placeLabel.heightAnchor.constraintEqualToAnchor(placeContainerView.heightAnchor).active = true
placeImageLabelSeparator.leftAnchor.constraintEqualToAnchor(placeLabel.rightAnchor).active = true
placeImageLabelSeparator.topAnchor.constraintEqualToAnchor(placeContainerView.topAnchor).active = true
placeImageLabelSeparator.widthAnchor.constraintEqualToConstant(2).active = true
placeImageLabelSeparator.heightAnchor.constraintEqualToAnchor(placeContainerView.heightAnchor).active = true
placeImageView.leftAnchor.constraintEqualToAnchor(placeImageLabelSeparator.rightAnchor).active = true
placeImageView.topAnchor.constraintEqualToAnchor(placeContainerView.topAnchor).active = true
placeImageView.widthAnchor.constraintEqualToConstant(45).active = true
placeImageView.heightAnchor.constraintEqualToAnchor(placeContainerView.heightAnchor).active = true
Сначала создайте подкласс UIView, а не только вычисленное свойство. Затем вы можете передать соответствующий 'CGRect' в инициализатор' init (frame:) 'подкласса, когда вам понадобится экземпляр – Paulw11