sizeThatFits and sizeToFit是UIView的两个方法

来源:互联网 发布:装修门户网站模板源码 编辑:程序博客网 时间:2024/05/16 00:26
- (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];  }

0 0
原创粉丝点击