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