iOS Uygulama Geliştirme yazı serisinde geliştirmekte olduğum I am Ege uygulamasında en son yeni bir sayfa açmıştık. Bu sefer yeni açmış olduğumuz sayfada TableView Custom cell kullanarak benim eğitim hayatımdan bahsedeceğiz.
Bir liste üzerinde mezun olmuş olduğum okulları göstereceğim. Bunu yaparken custom cell kullanacağım çünkü TableView komponentkindeki her bir liste üyesinin standart tasarımdan farklı olmasını istiyorum.
İlk olarak TableView komponentini göstermek istediğim ekrana komponenti ekliyorum ve her zaman tüm ekranı kaplamasını istediğim için 0,0,0,0 constraint olarak ekliyorum. Assistant View kullanarak oluşturmuş olduğum TableView komponenti için IBOutlet oluşturuyorum. Bunun için tabi öncelikle SchoolHistoryViewController adında bir dosya oluşturuyorum. Bu işlemi yaptıktan sonra okul hayatımı barındıracak View’i storyboarddan seçiyorum ardından custom class diyerek yeni oluşturduğum sınıfı gösteriyorum.
Şimdi view controller üzerinde biraz kodlama yapalım. İlk olarak bu TableView komponentinin delegate ve datasource işlemlerinin buradan olacağını belirtelim. Şimdi TableView üzerinde kaç row olacak ve row içerikleri nasıl olacak bunu belirteceğiz ancak TableView üzerinden miras almamız gerekiyor. Miras sonrası numberOfRowsInSection ve cellForRowAt fonksiyonlarını tanımlamamız gerekiyor.
Burada TableView kodlamalarına bir mola vermek istiyorum ve okul hayatımda kullanacağım sınıfı oluşturmak ve bu sınıf için bir array oluşturmak istiyorum. Çünkü listede ben bunları göstereceğim. Sınıf oluşturma adımlarına bu yazıdan ulaşabilirsiniz.
Sınıfı ve listemizi oluşturduğumuza göre sırada custom cell oluşturmak var. Bunun için de View klasörü altında yeni bir dosya oluşturuyorum. Cocoa Touch Class tipinde oluşturacağım bu yeni dosya UITableViewCell alt sınıfı olacaktır.
Oluşan custom cell görünümüyle swift dosyasındaki kodları birleştirmek ve custom cell tasarımı oluşturmak şimdiki görevimiz. Bu adımı çok detaylandırmayacağım. Zaten hep yaptığımız işlemler ve checkin detaylarında rahatlıkla görebilirsiniz.
let nib = UINib(nibName: "SchoolTableViewCell", bundle: nil)
schoolHistoryTableView.register(nib, forCellReuseIdentifier: "SchoolTableViewCell")
Satırları ile TableView içerisinde kullanacağımız custom cell tasarımı kayıt etmiş oluyoruz.
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = schoolHistoryTableView.dequeueReusableCell(withIdentifier: "SchoolTableViewCell", for: indexPath) as! SchoolTableViewCell
cell.schoolDescription?.text = schools[indexPath.row].Description
cell.schoolDateLabel?.text = schools[indexPath.row].Dates
cell.schoolNameLabel?.text = schools[indexPath.row].SchoolName
return cell
}
Yukarıdaki kod bloğu ile customcell üzerindeki her bir label ile listemdeki sınıf üyelerine ait bağlama işlemini gerçekleştirdim.
func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
return 70.0;//Choose your custom row height
}
Kodları ile tablodaki satırların yüksekliğini biraz genişlettim. Tüm bu işlemlere ait checkin detaylarına bu adresten ulaşabilirsiniz.
Çocukluğumdan beri arabalara olan ilgim babam sayesinde başlamıştır. Araba manyağı seviyesinde bir ilgim var ancak bunu her ortamda dile getirmem. Teknolojiye ve bilgisayara olan ilgim kendimi tanımaya başladım başlayalı oldu. Şimdi ise kendimce kod yazabilen bir bilgisayar mühendisi olarak çalışıyorum.
Günümüz şartlarında neredeyse her Apple ürünü iCloud Etkinleştirme kilidi özelliğine sahiptir. Bu kilit bir çok… Daha fazla oku
Apple sattığı cihazlardan para kazandığı kadar servisleri ile de para kazanan bir firma olmuştur. Son… Daha fazla oku
Elmadan haberler 3 içerisindeki gündem şu şekildedir: Apple TV Android Akıllı Cep Telefonu ve Tabletlere… Daha fazla oku
iPhone Güncelleme sonrası pil sağlığı neden düşer son derece fazla aldığım diğer bir sorudur. Bu… Daha fazla oku
Bilinçli iPhone Kullanıcısı video serisi kapsamında iPhone iOS 16.2 ipuçları bu yazıda ele alacağım bir… Daha fazla oku
iPhone modellerinde güvenlik için Touch ID teknolojisini de Face ID teknolojisini de kullandık. iPhone SE… Daha fazla oku
Bu web site kullanıcı deneyimini arttırmak amacı ile çerezleri kullanmaktadır