2011-12-04 25 views
8

Arabirim Oluşturucu'da (Storyboard) özel bir UITableViewCell yaptım ve #import CustomTableViewCell.h aracılığıyla projeme aktardım.Özel UITableViewCell (IB) yalnızca seçili durumda gösterir

Her şey iyi çalışıyor, ancak hücre yalnızca seçili durumda yüklenir.

enter image description here

Hücre init tarafından her satırda yüklenecek istiyoruz.

P.S. Kaydırıcı ve metin alanı bağlantıları düzgün çalışıyor. Ayrıca tüm IB Bağlantılarını da yaptım.

CustomTableViewCell.m

#import "CustomTableViewCell.h" 

@implementation CustomTableViewCell 

@synthesize sliderLabel, slider; 

- (id)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier 
{ 
self = [super initWithStyle:style reuseIdentifier:reuseIdentifier]; 
if (self) { 
    // Initialization code 
} 
return self; 
} 

- (void)setSelected:(BOOL)selected animated:(BOOL)animated 
{ 
[super setSelected:selected animated:animated]; 

// Configure the view for the selected state 

} 

- (IBAction)getSliderValuesWithValue:(UISlider *)sender 
{ 
sliderLabel.text = [NSString stringWithFormat:@"%i/100", (int) roundf(sender.value)]; 
} 

@end 

Further Code

- (CustomTableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
static NSString *CellIdentifier = @"Kriterium"; 

CustomTableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier]; 
if (cell == nil) { 
    cell = [[CustomTableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier]; 
} 

// Configure the cell... 

cell.textLabel.text = [NSString stringWithFormat:@"%@", [listOfItems objectAtIndex:indexPath.row]]; 

return cell; 
} 

P.S. Yukarıdaki yöntemde bazı Düğmeler vb. Programlı olarak eklerseniz çalışır. Ama ben IB'deki satırları tasarlamak istiyorum. Bir çözüm olmalı.

+0

UITableView'ı satırlarla doldururken kullanılan cellForRowAtIndexPath yönteminin kodunu gönderir misiniz? – reddersky

+0

Cevabımı güncelledim. – DAS

+0

Bu hücreyi ayrı bir uçta veya tablodaki tablo görünümünde bir prototip olarak tasarladınız mı? – jrturton

cevap

16

Tamam ... tuhaf şeyler ... ;-) sorun bu hat oldu. Metin ile doldurduğum CustomCell'e başka bir UILabel eklemek zorunda kaldım. Standart UITableViewCell.textLabel.text Dolum

SONUÇ

PrototypeCells üzerine görünüyor.

... çok fazla kişiselleştirme acıyor. ;-)

Yine de teşekkürler! :)

+0

Çözümümde mi yoksa genel olarak mı? Tekrar teşekkürler, jr! – DAS

+0

Genelde demek istediğim - varsayılan hücre stilini kullanırsanız ve ardından alt görünümler eklerseniz, bu muhtemelen dikkat etmeniz gereken bir şeydir. – jrturton

+0

Tamam, teşekkürler. Sadece bir sürü farklı hücre stiline ihtiyacım vardı. IB'de görselleştirmek benim için daha kolay. :) – DAS

0

IB için gitmemenizi öneren. Sadece özelliği olarak ve init metodolojik initWithStyle (CustomTableViewCell.m dosyası) Bu denetimleri tanımlamak varsayılan özelliğiyle UISlider başlatmak: Ayrıca hiçbiri hücre seçimi stilini ayarlayabilirsiniz yanında

UISlider *tempSlider = [[UISlider alloc] initWithFrame:frame]; 
tempSlider.selected = NO; 
//define other properties as well 
self.slider = tempSlider; 
[self addSubview:self.slider]; 
[tempSlider release]; 

.

cell.textLabel.text = [NSString stringWithFormat:@"%@", [listOfItems objectAtIndex:indexPath.row]]; 

trick bunu vermedi dışarı bırakılması: Buradaki

cell.selectionStyle = UITableViewCellSelectionStyleNone; 
+0

Teşekkür ederiz. Fakat temel olarak [bu (tıklayın)] gibi çalışmak zorundadır (http://www.raywenderlich.com/5138/beginning-storyboards-in-ios-5-part-1).Herkes benim sorunumda hiçbir şey değiştirmeyen bu satırı kullanır: 'UITableViewCell * cell = [tableView dequeueReusableCellWithIdentifier: @ "PlayerCell"]; ' – DAS

İlgili konular