2010-04-24 28 views
7

'un yeniden çizimini zorlamaya çalışıyorum Bu gönderiyi http://news.selectstartstudios.com/beveled-uitableviewcells/'dan Beveled UITableViewCells ürününde buldum. Hücrelerin genişliğini azaltmak için teknik kullanıyorum ve çoğu zaman harika çalışıyor. Bununla birlikte, küçük bir sorunum var. Bazen hücreler düzgün bir şekilde yeniden çizilmez. Örneğin, bir hücrenin bir "orta" hücre olması gerektiği halde, bir "üst" hücre olarak çizilir: yfrog.com/f1screenshot20100424at100UITableViewCell

Bunu nasıl düzeltebilirim?

I [hücre setNeedsDisplay], [hücre setNeedsLayout] ile yeniden çizmek için hücre zorlama çalıştık [tableView reloadRowAtIndexPath: withAnimation:], [hücre drawRect:] ve [tableView drawRect: atIndexPath]. Fikirlerim tükendi.

Tekrar teşekkürler!

cevap

23

CellForRowAtIndexpath öğesinin sonunda [cell.backgroundView setNeedsDisplay] öğesini çağırmam gerekiyor.

+8

Şimdi kendi cevabınızı kabul edebilirsiniz. – Klaas

+2

iOS 7'de çalışmaz ... –

+0

iOS için çalışıyor 9 –

1

cellForRowAtIndexpath bazı arka plan iş parçacığı olduğu için aynı soruna girdim. Bu durumda çözüm, herhangi bir doğrudan hücre alt görünümü güncellemelerini ana iş parçacığına zorlamaktır: