0
我的观点,你可以看到如下: SETFRAME不起作用
当我试图瓦解schedinaContView在CGSizeZero框架,它的工作原理只有在schedina的子视图是空的。
这是我的代码:
-(void)prepareFloatSchedina
{
schedinaVC = [[SchedinaViewController alloc] initWithNibName:@"SchedinaViewController" bundle:nil];
schedinaVC.view.frame = self.schedina.frame;
[self.schedina addSubview: schedinaVC.view];
schedinaExpandedSize = _schedinaContView.frame.size;
CGRect frame = [UIUtilCollection frameInSuperFrame:self.view.frame atCornerWithSize:schedinaCompressedSize];
_schedinaContView.frame = frame;
NSLog(NSStringFromCGRect(_schedinaContView.frame));
UIButton *bottone = [[UIButton alloc] initWithFrame:CGRectMake(0.0, 0.0, 20.0, 20.0)];
[bottone setTitle:@"Ciao" forState:UIControlStateNormal];
[self.schedina addSubview:bottone];
}
这就是NSLog的结果:
{{1004,748},{0,0}}
但_schedinaContView仍然存在于视图中!
所以,如果我删除UIButton,它完美的作品。这就是为什么?
解决:
我解决了设置为YES [translatesAutoresizingMaskIntoConstraints:]
后来我停用NSLayoutConstraint的集中视图方法的帕拉姆,我重新当我尝试打开查看。
[_schedinaContView setTranslatesAutoresizingMaskIntoConstraints:YES];
_verticalSpace.active = NO;
是的,我使用它。我也试过在setFrame后面使用[updateConstraints],但它不起作用。 – 2014-11-24 11:28:09
@LucaD,如果你使用autolayout,你根本不需要'setFrame'。此外,最好将'translatesAutoresizingMaskIntoConstraints'设置为'NO'以避免自动布局冲突。 – 2014-11-24 11:36:56
好吧,但阅读有关AutoLayout的文档,我读了关于该方法的参数= YES。但是,我想我解决了,我会在下一个答案中解释它 – 2014-11-24 11:45:24