sizeThatFits and sizeToFit

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];
}

转载于:https://www.cnblogs.com/zsw-1993/p/4879451.html

(Dialog BamTo_Template (Components (SubLayout Layout1) (SubLayout Layout2) ) (Resources (.Label "设置") (.StartLocation 5) (.ResourceHints "Version:Creo4") (.Resizeable False) (.SizeToFit True) (.CanReduceWidth True) (.CanReduceHeight True) (.Layout (Grid (Rows 0 0) (Cols 0) Layout1 Layout2 ) ) ) ) (Layout Layout1 (Components (Label Label1) (InputPanel InputPanel1) (PushButton PushButton1) (Label Label2) (InputPanel InputPanel2) (PushButton PushButton2) (Label Label3) (InputPanel InputPanel3) (PushButton PushButton3) ) (Resources (Label1.Label "零件绘图模版") (Label1.AttachLeft True) (InputPanel1.Columns 30) (InputPanel1.MaxLen 100) (InputPanel1.MinColumns 0) (InputPanel1.HelpTextAlignment 1) (PushButton1.Label "选择") (PushButton1.Columns 5) (Label2.Label "钣金绘图模版") (Label2.AttachLeft True) (InputPanel2.MaxLen 100) (PushButton2.Label "选择") (Label3.Label "组件绘图模版") (Label3.AttachLeft True) (InputPanel3.MaxLen 100) (PushButton3.Label "选择") (.Label "绘图模版设置") (.Columns 50) (.Decorated 1) (.AttachLeft True) (.AttachRight True) (.AttachTop True) (.AttachBottom True) (.TopOffset 3) (.BottomOffset 3) (.LeftOffset 3) (.RightOffset 3) (.CanReduceWidth True) (.CanReduceHeight True) (.Layout (Grid (Rows 1 0 0) (Cols 0 1 0) Label1 InputPanel1 PushButton1 Label2 InputPanel2 PushButton2 Label3 InputPanel3 PushButton3 ) ) ) ) (Layout Layout2 (Components (CheckButton CheckButton1) (CheckButton CheckButton2) (CheckButton CheckButton3) (CheckButton CheckButton4) (CheckButton CheckButton5) ) (Resources (CheckButton1.Label "导出STP") (CheckButton2.Label "导出IGS") (CheckButton3.Label "导出DWG") (CheckButton4.Label "导出PDF") (CheckButton5.Label "记录工作目录") (.Label "导出设置") (.Columns 50) (.Decorated 1) (.TopOffset 3) (.BottomOffset 3) (.LeftOffset 3) (.RightOffset 3) (.Layout (Grid (Rows 1) (Cols 1 1 1 1 1) CheckButton1 CheckButton2 CheckButton3 CheckButton4 CheckButton5 ) ) ) ) 这是我的对话框代码,里面有右上角关闭的按钮么
最新发布
08-13
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值