2011-08-04 21 views

cevap

39

Her zaman harika Ray Wenderlich, UITableViewCells değiştirme konusunda bir eğitim yaptı ve bir degrade içerir.

//include #import <QuartzCore/QuartzCore.h> in the header… 

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath 
{ 

if (cell == nil) { 
     cell = [[DayCalendarCellView alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier]; 
     CAGradientLayer *gradient = [CAGradientLayer layer]; 
     gradient.frame = cell.bounds; 
     gradient.colors = [NSArray arrayWithObjects:(id)[[UIColor whiteColor]CGColor], (id)[[UIColor redColor]CGColor], nil]; 
     [cell.layer addSublayer:gradient]; 
    }   
    return cell; 
} 

Sen renklerini değiştirebilirsiniz ama bu size iyi bir fikir verecektir ...

iyi şanslar:

http://www.raywenderlich.com/2033/core-graphics-101-lines-rectangles-and-gradients

Eğer hızlı ve bir şekilde istiyorsanız

, burada bazı kod!

+0

Bu kodda bir hata var. NSArray'a eklendiklerinde, renklerin türüne dökülmeleri gerekir. Aşağıya bakınız. [NSArray dizisiWithObjects: (id) [UIColor whiteColor] .CGColor, (id) [UIColor redColor] .CGColor, nil]; Bunun dışında harika çalışıyor. Harika cevap için teşekkürler! – jmurphy

+0

Haklısınız. Bunun için üzgünüm! –

+2

UITableViewCell'in diğer katmanlarına/alt görünümlerine ihtiyaç duyuyorsanız, gradyanız bunların üzerine çizebileceğinden, bu yaklaşıma dikkat edin. –

1

Peronal olarak, Photoshop veya gimp'te bir degrade görüntüsü oluşturabilir ve ardından arka plan olarak kullanabilirsiniz. Hücreler öngörülebilir bir boyuta sahip olduğu sürece iyi çalışmalıdır.

+0

Ben de böyle yaptım. –

+4

Değişken yükseklikte bir gradyan gerekiyorsa, bu çalışmaz. Ayrıca, aynı etkiye programlı olarak ulaşılabiliyorsa, bunu yapmak daha akıllıca olabilir çünkü .ipa'yı daha küçük yapar. Sadece 2 sent – ArtSabintsev

2

X yüksekliğinin 1px imgesini oluşturun. CellForRowAtIndexPath yönteminde hücre içine UIView nesnesi ekleyin. UIView setbackgroundcolor yönteminde ucolor'ın colorWithPatterImage yöntemi.

+0

Bu, bunu yapmanın harika bir yoludur.[UIColor colorWithPatternImage:] ' –

2

Takip Yakup'un cevabı ve UIButton veya herhangi Görünüm kullanımının arka plan rengini ayarlamak için: yanıtlandı olarak

[button.layer addSublayer:gradient]; 
+0

kullanın. Ayrıca arka plan rengini şeffaf olarak ayarladım. – testing

İlgili konular