У меня странная проблема, которая, вероятно, имеет очень простое решение, я просто не вижу ее ...
У меня есть класс UIView, который содержит кнопку в качестве подпредставления, охватывающую 4/5ширины и одной трети высоты вида.Когда размер родительского вида изменяется (например, высота и половина ширины), кнопка должна оставаться там, где она есть (верхняя треть родительского вида), и теперь также имеет половину ширины и еще одну треть новой высоты.
Это означает:
Parent before: Frame (0,0,100,100)
Button before: Frame (0,0,80,33.3)
Parent after: Frame (0,0,50,50)
Button after: Frame (0,0,40,16.7)
Проблема в том, что кнопка после всегда имеет рамку (0,0,30,0) .Кажется, как будто новая ширина и высота кнопки, которую я только что получил, вычитая 50-пиксельное изменение вместо пропорционального изменения размера.Должно быть что-то действительно глупое, но я просто не могу его найти.
Вот код моего класса UIView:
-(id)init
{
self = [super init];
if(self)
{
self.autoresizesSubviews = true;
self.frame = CGRectMake(0,0,100,100);
button = [UIButton buttonWithType:UIButtonTypeCustom];
button.frame = CGRectMake(0,0,80, self.frame.size.height / 3);
button.autoresizingMask = UIViewAutoresizingFlexibleHeight
|UIViewAutoresizingFlexibleWidth;
[self addSubview:button];
}
return self;
}
У кого-нибудь есть идея?Я уже попробовал несколько вариантов флагов autoresizeMask, но безрезультатно - и вышеупомянутые флаги также должны быть правильными ...