原文地址:链接描述
在这篇文章中有一个简单的项目叫 BeginnerCook Starter ,其中一个ViewController+.swift的文件中有这样一段代码:
override func viewWillAppear(animated: Bool) {
super.viewWillAppear(animated)
if listView.subviews.count < herbs.count {
listView.viewWithTag(0)?.tag = 1000 //prevent confusion when looking up images
setupList()
}
}
listView.viewWithTag(0)?.tag = 1000 这一行代码到底有什么作用,他虽然加了注释我也不是很明白,求大神回答。
Dia kemudiannya menggunakan teg bermula dari 0 untuk mengenal pasti setiap
UIIamgeView
, jadi dia perlu menukar teg paparan yang 0 dalam listView (jenisnyaUIScrollView
) untuk mengelakkan pertindihan dengan teg yang dia tambah kemudian .Ternyata analisis di bawah ini tidak jelas Ideanya salah tetapi kesimpulannya betul. Dikemas kini seperti berikut:
Jumlah skor dan struktur: Kesimpulan asal adalah betul Pandangan yang tegnya ditukar daripada 0 kepada 1000 ialah bar skrol mendatar, tetapi ideanya salah. . . Walaupun ia tidak ditunjukkan dalam jawapan, saya akan menambahnya secara terperinci
Mula-mula tulis dua perkara yang boleh dipelajari daripada dokumen:
Perisytiharan
tag
secara pantas adalah seperti ini:var tag: Int
Dan terdapat perenggan ini di bawah dokumen:Dapat dilihat di sini bahawa jenis teg bukan pilihan, yang bermaksud
UIView
mesti mempunyai teg Perbincangan menunjukkan bahawa nilai lalai ialah 0.Antara muka dalam soalan kini kelihatan seperti ini:
Nota 1: Betul. . . Dia menetapkan teg listView kepada 1000 dalam StoryBoard, seperti yang ditunjukkan di bawah. Bar skrol mendatar tidak diubah suai di sini kerana sukar untuk menetapkan teg dalam StoryBoard. Ingat ini dan gunakannya dengan segera.
(tag di sudut kanan bawah = 1000)
Kemudian dokumen
- viewWithTag:
mengandungi perenggan berikutKaedah ini mencari paparan semasa dan semua subviewnya untuk paparan yang ditentukan.
Kaedah`viewWithTag:` mencari pandangan itu sendiri dan subviewnya.
Seperti yang dinyatakan di atas, teg listView telah ditukar kepada 1000 dalam StoryBoard Oleh itu, apabila melaksanakan
listview.viewWithTag(0)
dalam soalan, perkara pertama yang ditemui bukanlah listView itu sendiri, tetapi bar skrol dalam subviewnya. Kemudian tukar teg bar skrol kepada 1000Jadi kembali kepada kesimpulan sebelumnya, pandangan dengan tag 0 ialah:
Bar skrol mendatar XD. . .
Keupayaan saya untuk menyatakan diri saya terhad. . . Ia adalah perkara yang sangat mudah sehingga saya hampir berasa pening. Lebih baik saya berikan contoh:
Kod taman permainan dalam gambar: