您的位置:首页 > 产品设计 > UI/UE

sizeThatFits and sizeToFit是UIView的两个方法

2016-05-29 17:21 459 查看
sizeThatFits and sizeToFit是UIView的两个方法, 官方文档上说: 
- (CGSize)sizeThatFits:(CGSize)size;     
作用:return 'best' size to fit given size. does not actually resize view. Default is return existing view size
- (void)sizeToFit;     
作用: calls sizeThatFits: with current view bounds and changes bounds size.

- (void)viewDidLoad
{
    [super viewDidLoad];
    UIView *view
= [[UIView alloc] initWithFrame:CGRectMake(100, 100, 200, 100)];
    view.backgroundColor =
[UIColor yellowColor];
    UILabel *label
= [[UILabel alloc] initWithFrame:CGRectMake(5, 5, 0, 0)];
    [label setFont:[UIFont systemFontOfSize:20]];
    label.text = @"hello
wdszgrf";
    CGSize sizeThatFits
= [label sizeThatFits:CGSizeZero];
    NSLog(@"----
%f  %f ----", sizeThatFits.width,
sizeThatFits.height);   

    // output:  ---- 117.000000  24.000000 ----

    NSLog(@"****
%f  %f ****", label.frame.size.width,
label.frame.size.height);
  

    // output:  **** 0.000000  0.000000
**** 说明sizeThatSize并没有改变原始label的大小

 
    [label sizeToFit];  // 这样搞就直接改变了这个label的宽和高,使它根据上面字符串的大小做合适的改变
    [label setCenter:CGPointMake(80, 50)];
    NSLog(@"====
%f %f ====", label.frame.size.width,
label.frame.size.height);
 
    // output:   ==== 117.000000 24.000000 ==== 

    [view addSubview:label];
    [self.view addSubview:view];
}

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: