Нативная разработка мобильных приложений


Как создать свое представление



Download 3,69 Mb.
Pdf ko'rish
bet49/228
Sana21.07.2022
Hajmi3,69 Mb.
#834838
1   ...   45   46   47   48   49   50   51   52   ...   228
Bog'liq
Нативная разработка мобильных приложений

Как создать свое представление
Представлением в iOS является экземпляр 
UIView
. Это может быть экземпляр 
самого класса 
UIView
или его подкласса. Создать свое представление не намного 
сложнее, чем создать подкласс 
UIView
:
class SomeView: UIView {
required init?(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)
}
override init(frame: CGRect) {
super.init(frame: frame)
}
// Далее следуют нестандартные реализации методов
}
В классе должны быть определены два метода инициализации, если вы пла
-
нируете добавить больше свойств и хотите, чтобы объект был готов к работе 


iOS 

69
сразу после его инициализации: 
init(coder:)
и 
init(frame:)
. В этих методах сле
-
дует реализовать настройки, необходимые для подготовки объекта к работе.
Если, например, требуется создать представление с красным фоном и кноп
-
кой с надписью «Click Me!», реализовать его настройку можно примерно так:
class SomeView: UIView {
required init?(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)
setupView()
}
override init(frame: CGRect) {
super.init(frame: frame)
setupView()
}
private func setupView() {
backgroundColor = .red
let button = UIButton(type: .custom)
button.titleLabel?.text = "Click Me!"
addSubview(button)
}
}
Метод 
setupView
совместно используется обоими методами инициализации 
и вызывается при создании каждого экземпляра представления. Такой подход 
позволяет обеспечить согласованность процесса настройки. Внутри 
setupView
свойству 
backgroundColor
присваивается ссылка на экземпляр 
.red
класса 
UIColor

а затем создается новый экземпляр кнопки и добавляется как подпредстав-
ление.
Также в свое представление можно добавлять дополнительные свойства. 
Например, давайте сделаем текст на кнопке настраиваемым:
class SomeView: UIView {
var buttonText: String = "Click Me!" {
didSet {
button.titleLabel?.text = self.buttonText
}
}
lazy var button: UIButton = {
let button = UIButton(type: .custom)
addSubview(button)
return button
}()
required init?(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)
setupView()
}
override init(frame: CGRect) {
super.init(frame: frame)
setupView()
}


70

Пользовательские компоненты
convenience init(frame: CGRect, buttonText: String) {
self.init(frame: frame)
self.buttonText = buttonText
}
private func setupView() {
backgroundColor = .red
button.titleLabel?.text = buttonText
}
}
let noClicky = SomeView(frame: CGRect.zero, buttonText: "Don't click me!")
Здесь мы добавили новое свойство 
buttonText
для хранения текста надписи 
на кнопке. Это позволяет инициализировать кнопку и одновременно переда
-
вать текст надписи. Также мы немного изменили метод 
setupView
: мы убрали из 
него инициализацию кнопки и перенесли ее в свойство 
lazy
, чтобы позже его 
можно было изменить, не создавая новую кнопку.
Теперь посмотрим, как можно использовать наше новое представление. 

Download 3,69 Mb.

Do'stlaringiz bilan baham:
1   ...   45   46   47   48   49   50   51   52   ...   228




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©hozir.org 2024
ma'muriyatiga murojaat qiling

kiriting | ro'yxatdan o'tish
    Bosh sahifa
юртда тантана
Боғда битган
Бугун юртда
Эшитганлар жилманглар
Эшитмадим деманглар
битган бодомлар
Yangiariq tumani
qitish marakazi
Raqamli texnologiyalar
ilishida muhokamadan
tasdiqqa tavsiya
tavsiya etilgan
iqtisodiyot kafedrasi
steiermarkischen landesregierung
asarlaringizni yuboring
o'zingizning asarlaringizni
Iltimos faqat
faqat o'zingizning
steierm rkischen
landesregierung fachabteilung
rkischen landesregierung
hamshira loyihasi
loyihasi mavsum
faolyatining oqibatlari
asosiy adabiyotlar
fakulteti ahborot
ahborot havfsizligi
havfsizligi kafedrasi
fanidan bo’yicha
fakulteti iqtisodiyot
boshqaruv fakulteti
chiqarishda boshqaruv
ishlab chiqarishda
iqtisodiyot fakultet
multiservis tarmoqlari
fanidan asosiy
Uzbek fanidan
mavzulari potok
asosidagi multiservis
'aliyyil a'ziym
billahil 'aliyyil
illaa billahil
quvvata illaa
falah' deganida
Kompyuter savodxonligi
bo’yicha mustaqil
'alal falah'
Hayya 'alal
'alas soloh
Hayya 'alas
mavsum boyicha


yuklab olish