Размер кадра UIView не изменился. UIImageView помещен внутри него

Я делаю изображение в кадре, а затем пользователь может изменить размер кадра во время выполнения. Для этого я сделал UIView в своем основном UIViewController, а внутри этого UIView разместил 2 UIImageView. В панели «Структура документа» xCode иерархия выглядит следующим образом:


Просмотр
|--ImageView
|--ImageView

Я использую эту строку кода, чтобы изменить размер UIView при различных условиях, он будет соответствующим образом изменяться:

self.imageObject.frame = CGRectMake(self.imageObject.frame.origin.x , 
                                    self.imageObject.frame.origin.y, 
                                    200, 
                                    200);

imageObject — это мой UIView. Когда я запускаю его, размер UIView изменяется, но размер UIImageView остается прежним. Я также пытался сделать то же самое для своего UIImageView, но это не сработало.


person Chaudhry Talha    schedule 22.12.2014    source источник
comment
Попробуй это. CGRect frameA=self.imageObject.frame; frameA=CGRectMake(self.imageObject.frame.origin.x, self.imageObject.frame.origin.y, 200, 200); self.imageObject.frame = кадрА; [self.imageObject.frame setClipsToBounds:YES]; CGRect frameB=CGRectMake(0 ,0, frameA.size.Width, frameA.size.Height); [imageView setFrame:frameB];   -  person NewStackUser    schedule 22.12.2014


Ответы (3)


Вы также можете попробовать это: -

imageView.frame = CGRectMake(0,0,imageObject.frame.size.width, imageObject.frame.size.height);
imageView.autoresizingMask = UIViewAutoresizingFlexibleHeight | UIViewAutoresizingFlexibleWidth;
self.imageShw.contentMode = UIViewContentModeScaleAspectFit;
person Community    schedule 22.12.2014
comment
но есть проблема, когда я делаю AutoResizinMask, он не работает, тогда что я делаю, пожалуйста. - person Sumit singh; 22.12.2014
comment
imageShw.translatesAutoresizingMaskIntoConstraints = YES Вам также нужно сделать это для AutoResizinmask, тогда он будет работать идеально - person ; 22.12.2014
comment
Спасибо за решение. Я играл с автомасштабированием, и проблема была решена. - person Chaudhry Talha; 22.12.2014

Сначала вы можете попробовать,

self.imageObject.autoresizesSubviews = YES;

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

imageView.autoresizingMask = UIViewAutoresizingFlexibleLeftMargin   |
                             UIViewAutoresizingFlexibleRightMargin  |
                             UIViewAutoresizingFlexibleTopMargin    |
                             UIViewAutoresizingFlexibleBottomMargin |
                             UIViewAutoresizingFlexibleWidth        |
                             UIViewAutoresizingFlexibleHeight;

Проверьте Документация UIView для более подробной информации.

person christijk    schedule 22.12.2014
comment
Я установил для autoresizesSubviews значение YES, но это не сработало. Разве autoresizingMask не устанавливает для BOOL автоматически значение YES? - person Alex Cio; 22.05.2015

Пытаться:

imageView.frame = CGRectMake(0,
                             0,
                             imageObject.frame.size.width, 
                             imageObject.frame.size.height);
imageView.autoresizingMask = UIViewAutoresizingFlexibleHeight | 
                             UIViewAutoresizingFlexibleWidth;
person Avi Tsadok    schedule 22.12.2014
comment
но есть проблема - person ; 22.12.2014
comment
Не понимаю. Когда вы создали внутренний UIImageView, вы установили свойство autoresizingMask? - person Avi Tsadok; 22.12.2014
comment
Спасибо за решение. Я играл с автомасштабированием, и проблема была решена. - person Chaudhry Talha; 23.12.2014