Advertisement
  1. Code
  2. iOS

iOS dari awal dengan Swift: langkah pertama dengan UIKit

Scroll to top
Read Time: 16 min
This post is part of a series called iOS From Scratch With Swift.
iOS From Scratch With Swift: Exploring the Foundation Framework
iOS From Scratch With Swift: Auto Layout Basics

() translation by (you can also view the original English article)

UIKit adalah kerangka kerja yang paling sering Anda gunakan saat mengembangkan aplikasi iOS. Itu mendefinisikan komponen inti aplikasi iOS, dari label dan tombol untuk meja dilihat dan pengontrol navigasi. Dalam artikel ini, tidak hanya akan kita mulai eksplorasi kita kerangka UIKit, kita juga akan mengeksplorasi internal proyek iOS dan blok bangunan dasar iOS aplikasi.

Apakah kerangka UIKit?

Sementara kerangka dasar mendefinisikan kelas, protokol dan fungsi untuk iOS dan OS X pembangunan, kerangka UIKit eksklusif diarahkan iOS pengembangan. Ini adalah setara dengan kerangka aplikasi Kit atau AppKit untuk OS X pembangunan.

Seperti Foundation, UIKit mendefinisikan kelas, protokol, fungsi, jenis data dan konstan. Ia juga menambahkan fungsionalitas tambahan untuk berbagai Yayasan kelas, seperti NSObject, NSString, dan NSValue melalui penggunaan Objective-C kategori.

Kategori Objective-C adalah cara mudah untuk menambahkan metode tambahan untuk yang sudah ada kelas tanpa perlu subclassing. Mereka mirip dengan cepat ekstensi. Baca tutorial ini oleh Aaron Crabtree jika Anda ingin mempelajari lebih lanjut tentang tujuan-C kategori.

Bukan menjelajahi kelas utama UIKit, seperti yang kami lakukan untuk kerangka dasar, kita akan membuat dan perjalanan melalui sebuah proyek baru iOS, menjelajahi kelas yang kita hadapi. Dengan mengambil pendekatan ini, itu akan dengan cepat menjadi jelas dalam konteks apa kelas digunakan, bagaimana masing-masing kelas cocok ke dalam skema lebih luas dari aplikasi iOS dan apa peran bermain.

Awal yang baru

Peluncuran Xcode dan membuat proyek baru dengan memilih New > proyek... dari Berkas menu. Di bagian iOS di sebelah kiri, pilih aplikasi kategori. Dari daftar template proyek, pilih template aplikasi pemandangan tunggal.

Satu aplikasi Lihat template berisi blok bangunan dasar iOS aplikasi, yang menjadikannya tempat yang baik untuk memulai perjalanan kita.

Choosing a Project TemplateChoosing a Project TemplateChoosing a Project Template

Nama proyek FirstSteps dan masukkan nama organisasi dan pengenal. Menyetel ke Swift dan ditetapkan perangkat untuk iPhone. Biarkan kotak centang di bawah dicentang.

Configuring the ProjectConfiguring the ProjectConfiguring the Project

Memberitahu Xcode mana Anda ingin menyimpan proyek baru dan pastikan untuk menempatkan proyek dibawah kontrol versi dengan memeriksa kotak centang yang berlabel repositori membuat Git pada Mac saya. Kembali artikel ini untuk informasi lebih lanjut tentang kontrol versi dan manfaatnya.

Saving the ProjectSaving the ProjectSaving the Project

File dan folder

Kami telah belajar beberapa hal-hal baru sejak terakhir kali kami menciptakan sebuah proyek iOS dari awal jadi itu adalah ide yang baik untuk menjelajahi berbagai file dan folder dari proyek baru kami untuk melihat jika mereka membunyikan lonceng.

Dalam proyek Navigator, Anda akan melihat dua folder akar dari proyek:

  • Produk
  • folder dengan nama proyek Anda, FirstSteps dalam contoh ini

Mari kita lihat isi dari masing-masing folder ini.

Project StructureProject StructureProject Structure

Produk

Folder produk saat ini berisi salah satu item. Ini menyandang nama proyek dan memiliki perpanjangan. app. Produk folder berisi aplikasi — atau aplikasi-dibuat oleh proyek setelah kompilasi kode sumber.

Pernahkah Anda memperhatikan bahwa FirstSteps.app adalah disorot dalam warna merah? Setiap kali Xcode tidak dapat menemukan file, ini menyoroti file dalam merah. Jangan khawatir, meskipun. Karena proyek belum dikompilasi, Xcode belum dibuat produk.

Folder proyek

Sebagian besar waktu Anda akan dihabiskan dalam folder proyek, yang saat ini berisi file enam. Pertama dua file, AppDelegate.swift dan ViewController.swift, adalah sumber file. Berkas ini berisi kode sumber aplikasi.

Main.storyboard berisi user interface aplikasi. Kami telah bekerja dengan storyboard sebelumnya dalam seri ini. Perhatikan bahwa ada jalan cerita kedua, LaunchScreen.storyboard. Storyboard ini digunakan oleh sistem operasi ketika aplikasi ini sedang diluncurkan. Alih-alih menunjukkan pandangan kosong, sistem operasi menggunakan storyboard ini untuk secara dinamis membuat gambar peluncuran, yang ditampilkan kepada pengguna ketika aplikasi loading.

Info.plist, sering disebut sebagai "info-dot-plist" file proyek, adalah sebuah daftar properti yang berisi berbagai pengaturan konfigurasi. Sebagian besar pengaturan ini dapat juga dimodifikasi oleh memilih proyek dalam proyek Navigator, memilih target dalam daftar sasaran dan membuka tab Umum, kemampuan, dan Info.

Assets.xcassets adalah jenis khusus dari folder untuk menyimpan proyek Anda aset, seperti gambar.

Komponen aplikasi

Sekarang bahwa kita tahu apa yang berbeda file dan folder pada proyek kami adalah untuk, saatnya untuk menjelajahi berbagai komponen aplikasi iOS. Saat kami melanjutkan perjalanan kami, kami akan menemukan beberapa kelas yang berasal dari UIKit. Masing-masing kelas milik UIKit framework dimulai dengan awalan kelas UI. Ingat bahwa Yayasan kelas diawali dengan NS.

Pola Model-View-Controller

Sebelum kita mulai mengeksplorasi kerangka UIKit, saya ingin berbicara tentang pola Model-View-Controller (MVC). Pola MVC adalah salah satu pola yang paling luas dalam pemrograman berorientasi obyek. Ini mempromosikan usabilitas kode dan memiliki hubungan dekat dengan konsep pemisahan tanggung jawab atau masalah. Salah satu tujuan utama dari pola MVC adalah pemisahan logika bisnis aplikasi dari lapisan presentasi.

Kakao Touch mencakup pola MVC, yang berarti itu penting untuk memahami apa itu dan cara kerjanya. Dengan kata lain, dengan memahami pola MVC, akan lebih mudah untuk memahami bagaimana berbagai komponen aplikasi iOS bekerja bersama-sama.

Pada pola MVC, lapisan model adalah mengendalikan logika bisnis aplikasi. Berinteraksi dengan database, misalnya, adalah tanggung jawab lapisan model. Lapisan view menyajikan data yang dikelola oleh lapisan model kepada pengguna. Lapisan Lihat mengelola antarmuka pengguna dan input pengguna.

Controller adalah lem antara model lapisan dan lapisan pemandangan. Sementara model lapisan dan lapisan pemandangan tidak tahu tentang keberadaan satu sama lain, controller tahu tentang keduanya.

Karena controller tahu tentang model dan pemandangan, hal ini sering bagian yang paling tidak dapat digunakan kembali dari aplikasi. Kurang objek tahu tentang lingkungan dan benda-benda yang ia berinteraksi dengan, semakin mudah itu adalah untuk menggunakan kembali.

UIApplication

Meskipun kelas UIApplication adalah komponen kunci dari setiap aplikasi iOS, Anda tidak akan berinteraksi dengan itu sangat sering dan Anda akan jarang, jika pernah, merasa perlu untuk subclass UIApplication.

Ketika meluncurkan aplikasi, tunggal kelas ini dibuat. Apakah Anda ingat apa adalah sebuah objek tunggal? Itu berarti bahwa hanya satu objek instance kelas UIApplication dibuat selama aplikasi hidup.

Contoh UIApplication adalah entry point untuk interaksi pengguna dan berita-berita acara ke objek-objek tepat sasaran. Arti sesungguhnya dari ini akan menjadi jelas dalam beberapa menit ketika kita mengambil melihat tampilan controller.

Dalam aplikasi iOS, contoh UIApplication memiliki sebuah objek delegasi yang terkait dengannya. Setiap kali Anda membuat sebuah proyek iOS yang menggunakan salah satu template yang disediakan, Xcode akan membuat kelas delegasi aplikasi untuk Anda. Lihatlah nama file sumber dalam folder proyek proyek Navigator. File pertama yang bernama AppDelegate.swift.

Contoh kelas ini adalah delegasi dari UIApplication singleton. Sebelum mengambil melihat lebih dekat kelas AppDelegate, kita perlu memahami apa pola delegasi.

Ole Begemann menulis artikel yang sangat baik tentang urutan peluncuran aplikasi iOS khas. Dalam artikelnya, Ole berbicara tentang berbagai komponen terlibat dan peran mereka selama aplikasi peluncuran urutan. Saya sangat merekomendasikan membaca artikel ini jika Anda ingin mendapatkan pemahaman yang lebih baik tentang peran kelas UIApplication.

Pola delegasi

Pola delegasi digunakan secara ekstensif dalam kakao dan kakao menyentuh. Dalam artikel yang akan datang dari seri ini, di mana kita mengeksplorasi seluk-beluk pemandangan Meja, Anda akan menemukan bahwa tabel pemandangan sangat bergantung pada delegasi (dan sumber data) pola.

Seperti pola MVC, delegasi umum di pemrograman berorientasi obyek. Pola delegasi kakao menyentuh, bagaimanapun, sedikit berbeda, karena itu membuat menggunakan protokol delegasi untuk mendefinisikan perilaku objek delegasi.

Mari kita melompat ke depan dan Lihatlah pemandangan meja. Jika Anda telah menghabiskan jumlah waktu dengan iPhone atau iPad, maka kelas UITableView harus akrab bagi Anda. Hal ini menyajikan daftar ordered data kepada pengguna dan melakukan pekerjaan ini sangat baik.

Bagaimana tampilan tabel yang tahu apa yang harus dilakukan ketika baris mengetuk? Apakah perilaku ini termasuk dalam kelas UITableView? Tentu saja tidak, karena perilaku ini bervariasi dari satu aplikasi ke aplikasi. Jika kita termasuk perilaku ini dalam kelas UITableView, itu tidak akan sangat dapat digunakan kembali.

Tampilan tabel dia tanggung-jawab ini ke objek delegasi. Menempatkan berbeda, itu mendelegasikan tugas ini ke objek lain, sebuah delegasi objek. Luangkan waktu untuk memeriksa referensi kelas kelas UITableView. Ini memiliki dua sifat yang bernama dataSource dan delegasi. Delegasi diberitahu melalui tampilan tabel ketika pengguna keran berturut-turut. Ini adalah tanggung jawab objek delegasi untuk menanggapi peristiwa sentuhan.

Sumber data tampilan tabel serupa. Perbedaan utama adalah bahwa tampilan tabel meminta objek sumber data untuk sesuatu, data yang dibutuhkan untuk menampilkan.

Delegasi dan data objek sumber, seperti mendelegasikan tampilan tabel dan benda dataSource, yang hampir selalu kelas kustom. Dalam kebanyakan kasus, itu terserah kepada pengembang untuk membuat dan menerapkan kelas-kelas ini, karena pelaksanaannya khusus untuk setiap aplikasi.

Delegasi aplikasi

Sekarang bahwa kita tahu apa delegasi, saatnya untuk menjelajahi AppDelegate kelas Xcode ciptakan untuk kita. Pada peluncuran aplikasi, aplikasi membuat instance kelas AppDelegate. Contoh AppDelegate ini kemudian ditetapkan sebagai delegasi contoh UIApplication sistem operasi yang dibuat untuk aplikasi Anda. Anda tidak pernah secara eksplisit instantiate sebuah aplikasi delegasi objek.

Buka AppDelegate.swift untuk mengkaji pelaksanaan kelas AppDelegate. Mengabaikan komentar di bagian atas, baris pertama impor kerangka UIKit sehingga kita dapat bekerja dengan kelas dan protokol.

1
import UIKit

Baris berikutnya kita melihat sesuatu yang kita belum tertutup Namun, atribut. Atribut di Swift mulai dengan @ simbol dan dapat dilihat sebagai petunjuk untuk kompilator. Atribut @UIApplicationMain memberitahu kompilator bahwa AppDelegate adalah kelas yang harus digunakan sebagai delegasi aplikasi. Semua yang perlu Anda ketahui tentang atribut ini sekarang.

1
@UIApplicationMain

Baris berikutnya harus tampak akrab. Ini adalah awal dari deklarasi kelas AppDelegate. Hal ini menentukan nama kelas dan kelas induk kelas, UIResponder.

Ia juga memberitahu compiler yang AppDelegate sesuai dengan protokol UIApplicationDelegate. Ini tidak mengherankan karena kita sudah tahu bahwa AppDelegate berfungsi sebagai aplikasi delegasi.

1
class AppDelegate: UIResponder, UIApplicationDelegate {
2
    ...
3
}

Baris berikutnya adalah sebuah deklarasi properti untuk jendela properti. Perhatikan bahwa properti variabel tipe UIWindow?. Kelas UIWindow adalah sebuah subclass dari UIView, basis kelas untuk dilihat pada iOS.

1
var window: UIWindow?

Bagian yang paling menarik dari antarmuka kelas AppDelegate adalah protokol UIApplicationDelegate. Lihatlah referensi dari protokol UIApplicationDelegate untuk daftar lengkap dari metode-metode yang mendefinisikan protokol.

Protokol mendefinisikan puluhan metode dan saya mendorong Anda untuk menjelajahi beberapa dari mereka untuk mendapatkan ide dari protokol kemampuan. Metode yang paling menarik bagi kita saat ini adalah application(_:didFinishLaunchingWithOptions:).

Ketika objek UIApplication yang telah selesai mempersiapkan aplikasi untuk peluncuran, hal itu akan memberitahu para delegasi, objek AppDelegate, yang aplikasi adalah tentang untuk memulai.

Mengapa Apakah itu memberitahu aplikasi delegasi acara ini? Contoh UIApplication memberitahu para delegasi acara ini sehingga memiliki kesempatan untuk mempersiapkan peluncuran aplikasi. Pelaksanaan application(_:didFinishLaunchingWithOptions:) ini cukup singkat seperti yang Anda lihat di bawah ini.

1
func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
2
    // Override point for customization after application launch.

3
    return true
4
}

Ini menyediakan referensi untuk contoh UIApplication dan kamus pilihan. Anda dapat mengabaikan Kamus pilihan untuk sementara waktu. Untuk memastikan bahwa aplikasi diluncurkan oleh sistem operasi, kami kembali benar.

Jalan cerita

Xcode proyek berisi file menarik yang lain, Main.storyboard. Storyboard mendefinisikan apa yang tampak seperti antarmuka pengguna aplikasi Anda. Secara default, storyboard dinamai Main.storyboard. Pilih storyboard untuk membukanya.

The Main Storyboard of the ProjectThe Main Storyboard of the ProjectThe Main Storyboard of the Project

Storyboard saat ini berisi satu pandangan di tengah ruang kerja. Di sebelah kanan Navigator proyek Anda dapat melihat daftar item, yang berupa objek yang Anda lihat dalam tampilan. Item yang populer, lihat Controller adegan, berisi satu anak item, View Controller.

Objek View Controller yang juga memiliki sejumlah item anak, tetapi ada satu yang menarik khusus bagi kita, objek yang bernama View. Ingat diskusi tentang pola MVC. Sekarang Anda dapat melihat pola MVC dalam tindakan. Model hilang pada saat ini, tapi kami memiliki pandangan, lihat objek dan controller, objek View Controller.

Ketika meluncurkan aplikasi, storyboard digunakan untuk membuat aplikasi antarmuka pengguna. Lihat controller secara otomatis dibuat dan begitu juga tampilan Lihat controller. Objek pemandangan di storyboard dikelola oleh tampilan controller.

Tunggu sebentar. Di mana menemukan kelas controller lihat di storyboard? Bagaimana cara mengubah perilaku untuk menciptakan sebuah aplikasi yang unik? Pilih objek View Controller di sebelah kiri dan buka Inspektur identitas di sebelah kanan.

The Class of the View ControllerThe Class of the View ControllerThe Class of the View Controller

Inspektur identitas memberitahu Anda segala sesuatu yang perlu Anda ketahui. Di bagian atas, di bagian kelas kustom, Anda dapat melihat nama kelas controller pemandangan, ViewController. Pernahkah Anda memperhatikan bahwa file kami belum membicarakan belum memiliki nama yang sama? Kita akan menjelajahi file ini dalam beberapa saat.

Lihat controller dibuat bagi kita, karena controller lihat awal dari storyboard. Hal ini ditunjukkan dalam storyboard dengan tanda panah menunjuk ke adegan Controller View.

The arrow points to the initial view controller of the storyboardThe arrow points to the initial view controller of the storyboardThe arrow points to the initial view controller of the storyboard

UIViewController

Jika Anda membuka ViewController.swift, Anda akan melihat bahwa kelas ViewController adalah sebuah subclass dari UIViewController. Seperti AppDelegate, UIViewController kelas adalah sebuah subclass dari UIResponder. Lihat controller, atau subclass daripadanya, jatuh dalam kategori controller pola MVC. Seperti namanya, mereka mengontrol tampilan, instance kelas UIView, yang merupakan milik kategori Lihat pola MVC.

Seperti yang kita akan lihat nanti, kontroler Lihat mengelola pandangan dan subviews nya. Untuk melakukan ini, lihat controller perlu tahu tentang pandangan. Dengan kata lain, perlu memiliki referensi ke tampilan.

Lihat controller di storyboard memiliki referensi ke tampilan. Anda dapat memverifikasi ini dengan memilih tampilan controller di storyboard dan membuka koneksi Inspektur di sebelah kanan.

The view controller has a reference to its viewThe view controller has a reference to its viewThe view controller has a reference to its view

Di Inspektur koneksi, Anda akan melihat bagian yang bernama outlet. Istilah outlet adalah sebuah kata mewah untuk sebuah properti yang dapat diatur di storyboard. Arahkan dengan mouse Anda ke outlet bernama pemandangan dan mengamati bagaimana tampilan di ruang kerja disorot. Itu adalah hubungan antara tampilan controller dan pemandangan.

UIView

Meskipun aplikasi Anda hanya dapat memiliki satu contoh dari UIWindow, dapat memiliki banyak pemandangan. Kelas UIView merupakan komponen penting dari kerangka UIKit, karena banyak kelas mewarisi dari itu — langsung atau tidak langsung.

Kembali Main.storyboard dengan memilih dan mengambil melihat Perpustakaan objek di bagian bawah Inspektur.

Browsing the Object LibraryBrowsing the Object LibraryBrowsing the Object Library

Jelajahi Perpustakaan objek dan menyeret label dan tombol ke tampilan di ruang kerja. Tidak peduli di mana posisi mereka dalam tampilan selama mereka berada dalam tampilan Lihat controller.

Adding a Label and a Button to the StoryboardAdding a Label and a Button to the StoryboardAdding a Label and a Button to the Storyboard

Perhatikan bahwa dua objek yang baru telah ditambahkan ke bagian objek di sebelah kiri. Label (UILabel) dan tombol (UIButton) mewarisi dari UIView. Pernahkah Anda memperhatikan bahwa Label dan tombol objek sedikit indentasi dibandingkan dengan objek View? Ini menunjukkan bahwa objek yang Label dan tombol subviews objek pemandangan. Pemandangan yang dapat memiliki satu atau lebih subviews yang dikelola.

Seperti yang saya sebutkan sebelumnya, kelas UIView adalah komponen penting dari UIKit. Lihat mengelola wilayah persegi panjang atau bingkai pada layar. Mengelola isi dari daerah, subviews, dan interaksi dengan pandangan yang isi. Kelas UIView adalah sebuah subclass dari UIResponder. Anda akan belajar lebih tentang dilihat selama seri ini.

Outlet

Mari kita lihat sebuah contoh untuk menggambarkan hubungan antara storyboard, pandangan ini berisi dan lihat controller. Tiga komponen penting dan saya ingin memastikan bahwa Anda memahami bagaimana mereka bekerja bersama.

Beberapa saat yang lalu, Anda menambahkan label dan tombol ke tampilan Lihat controller. Bagaimana tampilan controller tahu tentang benda-benda ini? Saat ini, mereka tidak muncul dalam Inspektur koneksi, tetapi kita dapat mengubah bahwa dengan memberitahu controller pandangan tentang mereka. Buka ViewController.swift dan menambahkan sebuah properti untuk label dan satu tombol.

1
import UIKit
2
3
class ViewController: UIViewController {
4
5
    @IBOutlet var myLabel: UILabel!
6
    @IBOutlet var myButton: UIButton!
7
8
    ...
9
10
}

Dengan menambahkan atribut @IBOutlet untuk Deklarasi properti, properti muncul dalam Inspektur koneksi di storyboard dan itulah apa yang kita inginkan.

Kembali ke storyboard, pilih View Controller obyek dalam adegan Controller View, dan buka Inspektur sambungan di sebelah kanan. Sifat-sifat baru sekarang terdaftar dalam daftar outlet. Namun, tampilan controller belum membuat hubungan antara sifat-sifat baru dan benda-benda di storyboard belum.

Hal ini mudah untuk memperbaiki. Tarik dari lingkaran kosong di sebelah kiri outlet myLabel ke label dalam ruang kerja. Ini akan membuat sambungan. Lihat controller sekarang tahu tentang label. Ulangi langkah ini untuk tombol.

Connecting Outlets in the StoryboardConnecting Outlets in the StoryboardConnecting Outlets in the Storyboard

Meskipun kita dapat mengubah teks label dalam storyboard, mari kita melakukan ini di lihat controller untuk menggambarkan bahwa tampilan controller memiliki akses ke label dan tombol storyboard.

Buka ViewController.swift dan mencari theviewDidLoad() metode. Mengubah metode viewDidLoad() untuk mencerminkan pelaksanaan di bawah ini. Komentar telah diabaikan untuk kejelasan.

1
override func viewDidLoad() {
2
    super.viewDidLoad()
3
    
4
    myLabel.text = "This is an instance of a UILabel."
5
}

Kami dapat mengirim pesan ke label properti dengan mengakses controller Lihat myLabel properti. Kita dapat mengubah teks label dengan mengatur properti teks label, menggunakan string literal.

1
myLabel.text = "This is an instance of a UILabel."

Metode viewDidLoad() secara otomatis dipanggil ketika controller Lihat telah dimuat pemandangan. Kata kunci yang menimpa menunjukkan bahwa kita adalah meng-override metode yang didefinisikan oleh kelas yang lebih tinggi di atas pohon warisan. Kelas UIViewController, parent class kelas ViewController, menerapkan metode ini.

Juga perhatikan bahwa kita memanggil viewDidLoad() di super. Apa itu super? Seperti diri merujuk kepada contoh saat ini, super merujuk kepada parent class, UIViewController. Dengan kata lain, kita memanggil metode viewDidLoad() pada superclass. Hal ini sering penting ketika meng-override metode dalam sebuah subclass, karena superclass dapat melaksanakan tugas-tugas penting dalam implementasi sendiri dan kita tidak ingin istirahat apapun.

Menjalankan aplikasi dalam simulator dengan mengklik tombol Jalankan di kiri atas. Perhatikan bahwa label teks telah diperbarui. Jangan khawatir tentang posisi label dan tombol. Itu adalah sesuatu yang kita akan memperbaiki dalam tutorial berikutnya.

Tindakan

Kami telah menjelajahi banyak hal-hal baru dalam artikel ini. Saya ingin mengakhiri angsuran ini dengan berbicara tentang tindakan. Seperti outlet, tindakan yang tidak lebih dari metode yang dapat Anda akses di storyboard.

Mari kita lihat bagaimana ini bekerja. Buka ViewController.swift dan menambahkan metode berikut di bawah metode viewDidLoad().

1
@IBAction func changeColor(sender: UIButton) {
2
    print(sender.classForCoder)
3
    print(sender.superclass)
4
    
5
    let r = CGFloat(arc4random() % 255)
6
    let g = CGFloat(arc4random() % 255)
7
    let b = CGFloat(arc4random() % 255)
8
    
9
    let color = UIColor(red: (r/255.0), green: (g/255.0), blue: (b/255.0), alpha: 1.0)
10
    
11
    view.backgroundColor = color
12
}

Jangan bingung dengan atribut @IBAction. Atribut ini menunjukkan bahwa metode aksi dan, karenanya, dapat diakses di storyboard. Jika kita mengambil melihat lebih dekat pada tindakan changeColor(_:), kita dapat melihat bahwa dibutuhkan satu argumen jenis UIButton.

Sebagai argumen namanya, argumen dari metode atau tindakan adalah object yang mengirim pesan ke tampilan controller. Aku akan menjelaskan hal ini secara lebih rinci dalam hanya sedikit.

Meninjau kembali storyboard, pilih View Controller obyek dalam adegan Controller View, dan membuka koneksi Inspektur. Bagian baru telah muncul di Inspektur koneksi, tindakan yang diterima, dan tindakan kami hanya menambahkan terdaftar dalam bagian ini.

Connecting the Action in the StoryboardConnecting the Action in the StoryboardConnecting the Action in the Storyboard

Tarik dari lingkaran kosong di sebelah kiri dari tindakan ke tombol di ruang kerja. Pop up menu dengan daftar pilihan akan muncul. Daftar berisi semua peristiwa mungkin bahwa tombol dapat merespon. Salah satu yang kepentingan kita adalah Touch Up di dalam. Acara ini dipicu ketika pengguna menyentuh tombol dan mengangkat jarinya dalam batas-batas tombol.

Choosing the Appropriate Touch EventChoosing the Appropriate Touch EventChoosing the Appropriate Touch Event

Jalankan aplikasi Anda sekali lagi dan ketuk tombol. Tampilan Lihat controller harus mengubah warna setiap kali Anda menekan tombol. Kami menambahkan dua pernyataan cetak tindakan changeColor(_:). Mari kita lihat apa output akan terlihat seperti ketika Anda menekan tombol.

1
UIButton
2
Optional(UIControl)

Baris pertama menampilkan kelas pengirim, contoh UIButton. Ini membuktikan bahwa itu adalah tombol yang memicu metode ini pada tampilan controller. Itu adalah mengirim pesan changeColor(_:) ke tampilan controller.

Baris kedua menampilkan superclass pengirim. Ingat bahwa tidak setiap kelas memiliki superclass. Itulah alasan kami kembali opsional. Keluaran mengatakan bahwa kelas induk UIButton adalah UIControl.

Metode itu sendiri cukup sederhana. Kami menghasilkan tiga bilangan bulat acak antara 0 dan 255, memberikan nilai-nilai ini ke init (merah: hijau: biru: alpha :) untuk menghasilkan warna acak, dan memperbarui warna latar belakang tampilan pengontrol tampilan dengan warna yang dihasilkan secara acak. Perhatikan bahwa Lihat referensi pandangan bahwa tampilan controller mengatur.

Kesimpulan

Dalam artikel ini, kami mengeksplorasi beberapa kelas kerangka UIKit dan kami mengambil dekat melihat berbagai komponen aplikasi iOS. Kita akan menjelajahi dan bekerja dengan kerangka UIKit secara lebih rinci dalam sisa seri ini. Jika Anda tidak sepenuhnya memahami berbagai konsep dan pola, maka saya yakin bahwa Anda akan sebagai kemajuan serial.

Jika Anda memiliki pertanyaan atau komentar, Anda dapat meninggalkan mereka di komentar di bawah atau mengulurkan tangan kepada saya di Twitter.

Advertisement
Did you find this post useful?
Want a weekly email summary?
Subscribe below and we’ll send you a weekly email summary of all new Code tutorials. Never miss out on learning about the next big thing.
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.