Переопределить кадр UIView - PullRequest
1 голос
/ 22 апреля 2011

У меня есть подкласс UIView, но мне нужно предотвратить изменение фрейма, поэтому я попытался переопределить метод setFrame: и просто игнорировать переданное значение, создать собственную базу CGRect на self.superview и передать ее на [super setFrame:

Как сделать рамку UIView неизменной?(из подкласса)

Ответы [ 2 ]

6 голосов
/ 22 апреля 2011

Step1: переопределить setFrame, чтобы ничего не делать.

- (void)setFrame:(CGRect)newRect
{
}

Шаг 2. Переместите настройку полустатического фрейма в переопределенную версию willMoveToSuperview:, чтобы получить действительную ссылку на супервизор.

- (void)willMoveToSuperview:(UIView *)newSuperview
{
   CGRect newFrame = newSuperview.frame;
   //manipulate the frame here
   [super setFrame:newFrame];
}
0 голосов
/ 22 апреля 2011

Подождите, вы не можете просто установить autoresizingMask на 0? Я подумал, что это помешало бы изменить размер представления при изменении размера родительского представления (пробовал также, и мне показалось, что это работает).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...