Я программирую создание заголовка настраиваемого раздела для таблицы с шириной, установленной на 290. Когда я использую UIImageView, содержащий 290 x 29 PNG, изображение отображается правильно. Тем не менее, я рефакторинг для включения UILabel, поэтому я могу сделать какой-то пользовательский текст, поэтому я помещаю UIImageView и UILabel в UIView. Когда я просматриваю эту версию, изображение примерно на три пикселя уже, чем должно быть.нежелательный размер UIImageView, когда в UIView
Другими словами:
UIImageView * headerImg = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"subtable-header.png"]];
return headerImg; // this works correctly. The image is "full size" at 290px wide.
Однако, когда я пытаюсь это:
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
Я пытался работать со свойством headerView.contentMode, чтобы увидеть, что есть какие-либо изменения, но не повезло так далеко.
Еще одно замечание:
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);
Возвращает:
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