2016-03-25 20 views
0

tüm satırın genişliğini elde etmek nasıl Hücrenin sol yarısı yeşil ve sağ hücrenin yarısı kırmızı renk vermeye çalışıyorum. cell.frame.width yorum yapmadan önce LÜTFEN YAPTIĞIM ve sonuç aldığım HERE kod snippet'ini kontrol edin. Bazı beyaz boşlukların olduğunu fark edebiliriz. Tahminimce cell.frame bana ihtiyacım olan doğru kareyi vermiyor.iOS tablo satırında

Aynı sonuca ulaşabilecek herhangi bir yardım veya başka bir yaklaşım büyük beğeni topluyor!

GÜNCELLEME: tablo görünümü ve contraints Here

+0

Cell.contentView.frame.size.width dosyasını deneyin. –

+0

yaptı. Bu 'cell.frame.size.width' – DDR

cevap

1

Daha iyi kullanım otomatik düzen, her iki yönde çalışmayı uygulamayı yapacak.

Ayrıca, uygulamanızda, her hücre için cellForRowAtIndexPath yöntemi çağrıldığında bgView her seferinde oluşturulur, bu nedenle bgView'ın yalnızca bgView'ı oluşturmaktan daha iyi olup olmadığını kontrol edin. Lütfen aşağıdaki koda bakın.

override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell { 
    let cell = tableView.dequeueReusableCellWithIdentifier("CellID", forIndexPath: indexPath) 

    cell.backgroundColor = UIColor.clearColor() 

    if cell.backgroundView == nil { 

     let leftView = UIView() 
     let rightView = UIView() 
     rightView.backgroundColor = UIColor.redColor() 
     leftView.backgroundColor = UIColor.yellowColor() 
     cell.backgroundView = UIView() 
     cell.backgroundView?.addSubview(leftView) 
     cell.backgroundView?.addSubview(rightView) 
     leftView.translatesAutoresizingMaskIntoConstraints = false; 
     rightView.translatesAutoresizingMaskIntoConstraints = false; 

     let viewDict = ["leftView":leftView, "rightView":rightView] 

     cell.backgroundView!.addConstraints(NSLayoutConstraint.constraintsWithVisualFormat("V:|-0-[leftView]-0-|", options: [], metrics: nil, views: viewDict)) 
     cell.backgroundView!.addConstraints(NSLayoutConstraint.constraintsWithVisualFormat("V:|-0-[rightView]-0-|", options: [], metrics: nil, views: viewDict)) 

     cell.backgroundView!.addConstraints(NSLayoutConstraint.constraintsWithVisualFormat("H:|-0-[leftView]-0-[rightView(==leftView)]-0-|", options: [], metrics: nil, views: viewDict)) 

    } 

    cell.textLabel?.text = "dsfsdkjfh fkjhsdkjfhs kdfksdhfk sdf"; 
    return cell 

} 
+0

ile aynıdır çok teşekkür ederim. cazibe gibi çalış. addsubview sonra kayboldum ... LOL ama sadece kopyalamak ve yapıştırmak ve sadece bir görünüm oluşturmak için – DDR

0

Bu, birçok nedenden dolayı olabilir. Birkaç şeyler deneyebilirsiniz:

cell.accessoryType = .None 

yerine: Hücre vb onay işareti, ok, hiç biri için hücrenin aksesuar türünü belirlemeyi deneyin olarak aksesuar görünümleri, için oda yapma olabilir

sağ taraf için bir görünüm ekleyerek/2

cell.backgroundColor = UIColor.redColor 
let leftViewFrame = cell.bounds 
leftViewFrame.width = view.frame.width/2.0 
let leftView = UIView(frame: leftViewFrame) 

diğer potansiyel sorun viewDidLoad içinde çözülebilir view.width sonra sol tarafını ayarı yerine hücrenin arka plan rengini ayarlamayı deneyin:

self.automaticallyAdjustsScrollViewInsets = false 
+0

iyi yakalamak yapıştırın ve iki yerine ekleyin. yolunu takip ettikten sonra arka plandaki beyaz boşluk gitmiş çünkü hücre arka planı tamamen değişti. Ancak, yeşil bölümün boyutu hala aynı. – DDR

+0

garip ... Cevabım için başka bir potansiyel düzeltme ekledim, görüşün boyutunun bir nedenden dolayı değişmediğinden emin misiniz? Bunu, viewDidAppear'da tablo görünümünü yeniden yükleyerek test edebilirsiniz – PeejWeej

İlgili konular