Je crée par programme un en-tête de section personnalisé pour une table dont la largeur est définie sur 290. Lorsque j'utilise un UIImageView contenant un PNG 290 x 29, l'image apparaît correctement. Cependant, je suis en train de refactoriser d'inclure un UILabel afin que je puisse faire du texte personnalisé, donc je place UIImageView et UILabel dans un UIView. Quand je regarde cette version, l'image est d'environ trois pixels plus étroite qu'elle ne devrait l'être.non désirée UIImageView redimensionnement dans un UIView
En d'autres termes:
UIImageView * headerImg = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"subtable-header.png"]];
return headerImg; // this works correctly. The image is "full size" at 290px wide.
Cependant quand j'essaie ceci:
UIView * headerView = [[[UIView alloc] initWithFrame:CGRectMake(0.0f, 0.0f, 290.0f, 29.0f)] autorelease];
UIImageView * headerImg = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"subtable-header.png"]];
[headerView addSubview:headerImg];
[headerImg release];
return headerView; // The image is about 3 pixels narrower
J'ai essayé de travailler avec la propriété headerView.contentMode pour voir qui a des changements, mais pas de chance si loin.
Une note plus:
NSLog(@"view frame size: %1.2f %1.2f %1.2f %1.2f", headerView.frame.size.width, headerView.frame.size.height, headerView.frame.origin.x, headerView.frame.origin.y);
NSLog(@"image frame size: %1.2f %1.2f %1.2f %1.2f", headerImg.frame.size.width, headerImg.frame.size.height, headerImg.frame.origin.x, headerImg.frame.origin.y);
Retours:
2009-11-20 11:35:42.323 MyApp[1350:20b] view frame size: 290.00 29.00 0.00 0.00
2009-11-20 11:35:42.323 MyApp[1350:20b] image frame size: 290.00 29.00 0.00 0.00