UITableViewCell Background

02:33 modifié dans API UIKit #1
Salut à  tous,

Je cherche à  attribuer un background à  une UITableViewCell, pour l'instant je suis parti sur un truc simple avec une image en arrière plan...
Sauf que l'arrière plan n'est pas dessiné à  l'endroit où il y a du texte..

<br />- (UITableViewCell *)tableView:(UITableView *)tb cellForRowAtIndexPath:(NSIndexPath *)indexPath<br />{<br />	<br />	NSString *CustomCellIdentifier = @&quot;PairCellIdentifier &quot;;<br />	<br />	if(indexPath.row % 2) CustomCellIdentifier = @&quot;ImpairCellIdentifier&quot;;<br />	UITableViewCell *cell = (UITableViewCell *)[tableView dequeueReusableCellWithIdentifier: CustomCellIdentifier];<br />	if (cell == nil)&nbsp; <br />	{<br />&nbsp; &nbsp; &nbsp; &nbsp; cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CustomCellIdentifier] autorelease];<br />		UIImageView* background = [[UIImageView alloc] initWithImage:[UIImage imageNamed:(indexPath.row %2)?@&quot;PlainCellImpairBackground.png&quot; : @&quot;PlainCellPairBackground.png&quot;]];<br /><br />		background.frame = CGRectMake(0,0,320,51);<br />		cell.backgroundView = [background autorelease];<br />	<br />&nbsp; &nbsp; }<br />	<br />	NSDictionary* friend = [[friendsList objectForKey:[[friendsList allKeys] objectAtIndex:indexPath.section]] objectAtIndex:indexPath.row];<br />	cell.textLabel.text = [friend objectForKey:@&quot;Name&quot;];<br />	return cell;<br />}<br />


Réponses

  • muqaddarmuqaddar Administrateur
    02:33 modifié #2
    cell.textLabel.backgroundColor = [UIColor clearColor];
    
  • 02:33 modifié #3
    dans 1247874502:

    cell.textLabel.backgroundColor = [UIColor clearColor];
    



    J'avais déjà  essayé  :o ça ne marche pas
  • muqaddarmuqaddar Administrateur
    02:33 modifié #4
    Très bizarre mon appli est bourrée de background customizés avec du texte par dessus.
  • 02:33 modifié #5
    dans 1247906909:

    Très bizarre mon appli est bourrée de background customizés avec du texte par dessus.


    J'ai envie de dire : WTF??  :)
  • muqaddarmuqaddar Administrateur
    02:33 modifié #6
    Je ne suis pas exactement dans le même cas que toi.

    Je créais tous les items de ma cell en les plaçant sans me servir de textLabel mais en créant un label, et en le positionnant dans ma cell.

    Le background était appliqué à  la fin.

    - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {&nbsp; &nbsp; <br />	// index vars<br />	NSUInteger section = indexPath.section;<br />	NSUInteger itemIndex = indexPath.row;<br />	NSUInteger sectionRows = [tableView numberOfRowsInSection:section];<br /><br />	// build cell<br />	static NSString *CellIdentifier = @&quot;Cell&quot;;	<br />	UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];<br />	UILabel *titleLabel, *recipesLabel;<br />	UIImageView *themeImageView;<br />	<br />	if (cell == nil) {<br />		#ifdef __IPHONE_3_0		<br />			cell = [[[UITableViewCell alloc] initWithStyle:UITableViewStyleGrouped reuseIdentifier:CellIdentifier] autorelease];<br />		#else<br />			cell = [[[UITableViewCell alloc] initWithFrame:CGRectZero reuseIdentifier:CellIdentifier] autorelease];		<br />		#endif<br />		// imageView<br />		themeImageView = [[[UIImageView alloc] init] autorelease];<br />		themeImageView.frame = CGRectMake(4.0, 4.0, 100.0, 50.0);<br />		themeImageView.tag = 111;<br />		// title label<br />		titleLabel = [[[UILabel alloc] initWithFrame:CGRectMake(110.0, 0.0, 170.0, 40.0)] autorelease];	<br />		titleLabel.backgroundColor = [UIColor clearColor];<br />		titleLabel.font = [UIFont boldSystemFontOfSize:14.0];<br />		titleLabel.textColor = kCOLOR_ORANGE;<br />		titleLabel.numberOfLines = 2;<br />		titleLabel.tag = 222;<br />		// recettes label<br />		recipesLabel = [[[UILabel alloc] initWithFrame:CGRectMake(110.0, 35.0, 170.0, 20.0)] autorelease];	<br />		recipesLabel.backgroundColor = [UIColor clearColor];<br />		recipesLabel.font = [UIFont systemFontOfSize:13.0];<br />		recipesLabel.textColor = [UIColor blackColor];<br />		recipesLabel.numberOfLines = 1;<br />		recipesLabel.tag = 333;<br />	}		<br />	else {<br />		themeImageView = (UIImageView*)[cell.contentView viewWithTag:111];<br />		titleLabel = (UILabel*)[cell.contentView viewWithTag:222];<br />		recipesLabel = (UILabel*)[cell.contentView viewWithTag:333];<br />	}<br /><br />	// set image	<br />	themeImageView.image = [UIImage imageNamed:[NSString stringWithFormat:@&quot;theme_%d.png&quot;, ((Theme*)[_themes objectAtIndex:itemIndex])._id]];<br />	[cell.contentView addSubview:themeImageView];	<br />	<br />	// set title<br />	titleLabel.text = ((Theme*)[_themes objectAtIndex:itemIndex])._name;	<br />	[cell.contentView addSubview:titleLabel];<br />	<br />	// set recipes<br />	NSInteger dessertsCount = ((Theme*)[_themes objectAtIndex:itemIndex])._desserts.count;<br />	recipesLabel.text = [NSString stringWithFormat:NSLocalizedString(@&quot;%d recettes proposées&quot;, @&quot;&quot;), dessertsCount];	<br />	[cell.contentView addSubview:recipesLabel];	<br />	<br />	// cell background<br />	[cell setTableViewCellBackgroundWithitemIndex:itemIndex sectionRows:sectionRows];<br /><br />	// cell accessory<br />	cell.accessoryView = [[[UIImageView alloc]initWithImage:[UIImage imageNamed:@&quot;indicator.png&quot;]] autorelease];<br /><br />	return cell;<br />}
    
  • 02:33 modifié #7
    Okk je vois, je faisais pareil avant mais à  chaque fois je faisais un -init de UILabel  :brule: l'utilisation du viewWithTag n'est pas bête
Connectez-vous ou Inscrivez-vous pour répondre.