2009-11-20 7 views
1

Я программирую создание заголовка настраиваемого раздела для таблицы с шириной, установленной на 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 

ответ

0

Не очень подходит, но это то, что в конечном итоге работает. Я полностью избавился от UIView и в итоге положил UILabel как подпункт UIImageView и вернул UIImageView.