2013-04-29 7 views
2

Я пытаюсь добавить UIImage в UIView. Изображение в точности соответствует размеру представления, и я определил прямоугольник вида. Каким-то образом я вижу, что изображения отображаются более широкими и более высокими (растянутыми). Почему мой вид изменяет размер изображения?UIView Изменение размера изображения?

UIImage *strip=[UIImage imageNamed:@"albumStrip.png"]; 
    UIImageView *imageView=[[UIImageView alloc]initWithImage:strip]; 
    UIView * aView = [ [UIView alloc] initWithFrame:CGRectMake(0.03*winSize.width, 0.85*winSize.height , 0.95*winSize.width, winSize.width/10) ]; 
    aView.backgroundColor = [UIColor whiteColor]; 
    aView.tag = 31000; 
    aView.layer.cornerRadius=1; 
    [aView addSubview:imageView]; 

EDIT: Я могу видеть, что мой образ 640x960. возможно ли, что для iPhone4 UIImage не знает, как его взять и разделить на коэффициент 2?

ответ

2

использование

imageView.layer.masksToBounds = YES; , который будет ограничивать изображение, чтобы быть широкими и выше

Если свойство masksToBounds установлено значение ДА, любые подуровни слоя, которые выходят за его пределы будут обрезаны к этим границам. Подумайте о слое, в этом случае, как окне на его подслоях; ничего за пределами края окна не будет видно. Когда masksToBounds имеет значение NO, никакого обрезания не происходит, и любые подслои, которые выходят за границы слоя, будут видны полностью (до тех пор, пока они не выйдут за пределы любого суперслоя, который имеет маскировку).

+0

спасибо, что он не работал :( – Curnelious

+0

Ошибка или какой-то помощник? –

+1

попробуйте 'aview.layer.masksToBounds = YES;' –

1

конечно ваше изображение будет растянуто и не может быть показано на вашем экране. Потому что его рамка намного больше размера UIView. вы должны установить рамку UIImageView, чтобы иметь тот же размер, как ваш UIView, то добавьте его как подвид:

UIImage *strip=[UIImage imageNamed:@"albumStrip.png"]; 
CGRect frame = CGRectMake(0.03*winSize.width, 0.85*winSize.height , 0.95*winSize.width, winSize.width/10); 
// create the uiimageView with the same frame size as its parentView. 
UIImageView *imageView=[[UIImageView alloc] initWithFrame:frame]; 
// set the image 
imageView.image = strip; 
// create the view with the same frame 
UIView * aView = [ [UIView alloc] initWithFrame:frame]; 
aView.backgroundColor = [UIColor whiteColor]; 
aView.tag = 31000; 
aView.layer.cornerRadius=1; 
[aView addSubview:imageView]; 

и, конечно же, если вы можете сделать размер UIImageView меньшего;)

Смежные вопросы