今天在設(shè)置控件的時候遇到了個問題社搅,就是如果控件本身沒有設(shè)置過frame,如果這個時候我們?nèi)ソo它去設(shè)置size和center來設(shè)置它的frame服赎,如果我們設(shè)置的順序不同那么所得到的效果是不一樣的榜跌。
經(jīng)過以下的代碼測試
? ? UIView * view1 = [[UIView alloc]init];
? ? view1.center = CGPointMake(20, 20);
? ? CGRect rect = view1.frame;
? ? rect.size = CGSizeMake(100, 100);
? ? view1.frame = rect;
? ? view1.backgroundColor = [UIColor redColor];
? ? [self.view addSubview:view1];
結(jié)果如下所示什黑,這個時候很明顯它的center不是20,20起惕,而它的origin是20,20涡贱,為什么?因為我們可以這么理解惹想,就是在這個控件還沒有大小的時候问词,我們?nèi)ピO(shè)置center是沒有效果的,這個時候我們可以理解成這個控件就是一個點嘀粱,我們設(shè)置了center其實是和origin是一樣的戏售。所以設(shè)置就沒有效果。
如果我們先設(shè)置size草穆,再去設(shè)置center,那么我們設(shè)置的center才是有效果的
UIView * view1 = [[UIView alloc]init];
? ? CGRect rect = view1.frame;
? ? rect.size = CGSizeMake(100, 100);
? ? view1.frame = rect;
? ? view1.center = CGPointMake(20, 20);
? view1.backgroundColor = [UIColor redColor]; [self.view addSubview:view1];
原文鏈接:https://blog.csdn.net/zcmuczx/article/details/78169483