Soru & Cevap

UITableViewCell left space sorunu

11.09.2017 - 03:22

Selamlar, tableView'de bulunan cell'in solundaki boşluğu kaldırmak istiyorum lakin yapamıyorum. Konu hakkında bilgisi olan arkadaşlar yardımcı olabilir mi acaba. Ekte sorun görseli mevcuttur.
Denediğim yöntemler;
1-Imageview'in content modunu kod ile ve menüden değiştirdim bir değişiklik yok
2-self.tableView.contentInset = UIEdgeInsetsMake(0, -15, 0, 0); kodunu denedim sadece satırı kaydırıyor ve autolayout'a uygun değil.
3- tableView.layoutMargins = UIEdgeInsets.zero
tableView.separatorInset = UIEdgeInsets.zero
Şu an ki resimde zaten bu kodları kullanıyorum, sorun çözülmedi
4-cell.layoutMargins = UIEdgeInsets.zero - cellForRowAt'ın içinde bu satırdı da kullandım yine sorun çözülmedi.
5- Belirtmem gereken diğer bir özellik ise custom bir satır yüksekliği kullanıyorum. 
**Son olarak ImageView'i doldurma işlemini menüden yaptığımda yani kod kullanmadığımda bir sıkıntı olmuyor. Yani soldan boşluk bırakmıyor. Sadece kod ile yaptığımda bu sorun ortaya çıkıyor. Menüyü kullanmam mantıksız çünkü her satıra farklı bir resim geleceği için kod ile doldurma işlemi yapmalıyım. 
Şimdiden teşekkür ederim.

1 Cevap

Sitedeki sorulara cevap verebilmek için giriş yapın ya da üye olun.

Profile picture for user gmyucalfarukeren
gmyucalfarukeren
22.02.2023 - 01:02

Merhaba Rahmican Bey,

UITableViewCell'daki sol boşluğu kaldırmak için yaptığınız denemeler doğru yöntemlerdir. Ancak, bu sorunu çözmenin birkaç farklı yolu olabilir, aşağıdakileri deneyebilirsiniz

  1. tableView:cellForRowAtIndexPath: metodunda cell'in content view'ünün sol padding değerini sıfırlayın
cell.contentView.layoutMargins.left = 0

 

  1. UITableViewCell'in initWithStyle:reuseIdentifier: metodunu override edin ve contentView'in layoutMargins özelliğini sıfırlayın
override init(style: UITableViewCell.CellStyle, reuseIdentifier: String?) {
    super.init(style: style, reuseIdentifier: reuseIdentifier)
    contentView.layoutMargins.left = 0
}

required init?(coder aDecoder: NSCoder) {
    fatalError("init(coder:) has not been implemented")
}

 

  1. UITableView'in separatorInset özelliğini sıfırlayın
tableView.separatorInset = UIEdgeInsets.zero

 

Bu yöntemlerden herhangi birinin sizin sorununuzu çözmesi gerekiyor. Ancak, belirttiğiniz gibi, custom bir satır yüksekliği kullandığınız için, tableView'in rowHeight özelliğini ayarlamalısınız. Bu nedenle, rowHeight özelliğini UITableViewCell'in yüksekliği + layoutMargins.top + layoutMargins.bottom şeklinde ayarlayın

 

tableView.rowHeight = cellHeight + cell.layoutMargins.top + cell.layoutMargins.bottom

 

 

Kaynaklar ( StackOverFlow ve yazilimsal_dunya'dan alıntıdır. Araştırılmıştır. )