2
我有可能有一个非常简单的解决一个奇怪的问题,我看不出它......子视图自动调整大小:调整大小似乎发生,而不是绝对的比例
我有一个包含一个按钮的UIView类作为子视图,跨越宽度的四分之三和视图高度的三分之一。当父视图大小(例如,具有高度和宽度的一半),按钮应该保持它在哪里(父视图的前三分之一),现在也有一半的宽度和新高度仍三分之一。
这意味着:
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标志颇有些变化,但无济于事 - 与上面的标志也应该是正确的......
我只是觉得自己现在IB乱搞和代码比较设置后,...这是两者之间居然不一致 - 在IB这是不够的,积极设置两个内部红线,并留下外线灰色,但在autoresizingMask本身必须添加所有的标志 - 什么,我想即使做Left和Top保证金的...但由于反正:-) – TheEye 2012-02-17 14:31:56
它实际上是相当一致的:箱内弹簧等同于'UIViewAutoresizingFlexibleHeight '和'UIViewAutoresizingFlexibleWidth',以及激活所述顶部结构是等同于转动'UIViewAutoresizingFlexibleTopMargin' ** **断开(等其他三个边距)。 – yuji 2012-02-17 14:35:45
一致,如果你知道它:-) – TheEye 2012-02-17 14:51:46