У меня есть функция, которая создает scrollview «personScrollView».Доступ к содержимому UIView UIScrollView в Swift
@IBOutlet var personsScrollView: UIScrollView!
var personsScroll = UIView()
personsScroll = createPersonsScroll(CGSizeMake(60.0, 80.0), avatarCount: 10)
func createPersonsScroll(buttonSize:CGSize, avatarCount:Int) -> UIView {
let padding = CGSizeMake(10, 10)
let personButtonView = UIView()
var buttonPosition = CGPointMake(padding.width * 0.5, padding.height)
let buttonIncrement = buttonSize.width + padding.width
personButtonView.frame.origin = CGPointMake(0,0)
personButtonView.frame.size.width = (buttonSize.width + padding.width) * CGFloat(avatarCount+1)
personButtonView.frame.size.height = (buttonSize.height + 2.0 * padding.height)
for i in 0...(avatarCount-1) {
let button = UIButton(type: .Custom)
button.tag = i
button.frame.size = CGSize(width: 60, height: 55)
button.frame.origin.x = buttonPosition.x
button.imageView?.contentMode = UIViewContentMode.ScaleAspectFit
button.setImage(UIImage(named: self.person[button.tag].avatar), forState: .Normal)
button.addTarget(self, action: "addPersonSelected:", forControlEvents: .TouchUpInside)
buttonPosition.x = buttonPosition.x + buttonIncrement
let label = UILabel(frame: CGRectMake(0, 60, 60, 15))
label.text = self.person[i].name
button.addSubview(label)
personButtonView.addSubview(button)
}
}
personsScrollView.contentSize = personButtonView.frame.size
personsScrollView.addSubview(personButtonView)
return personButtonView
}
Эта функция создает UIView «personButtonView», который будет содержать 10 UIbuttons «кнопку», и каждая кнопка имеет другое изображение. Мои вопросы, вне кода, в ViewDidLoad(), как мне получить доступ, например, к изображению второй кнопки, чтобы заменить только это изображение? Или как получить доступ к метке 4-й кнопки, чтобы изменить ее текст?
Буду признателен за вашу помощь! Спасибо заранее!
Это хороший ответ, однако мне было интересно, как получить доступ без необходимости делать пользовательский класс – Ruben
I просто заметил, что я неправильно понял вопрос, у вас есть несколько кнопок. Ответ один и тот же: инкапсуляция. – Clafou
Я отредактировал ответ, надеюсь, что он поможет – Clafou