【问题标题】:How to get button size before view is load?如何在加载视图之前获取按钮大小?
【发布时间】:2026-01-09 10:00:01
【问题描述】:

我正在寻找一些解决方案,如何在加载视图之前获取按钮的大小。我想让按钮变圆,所以我试试这个

-(void) viewWillAppear:(BOOL)animated{
    CGSize loopButtonSize= _loopButton.frame.size;
    _loopButton.layer.cornerRadius=loopButtonSize.height/2.0f;
    NSLog(@"viewWillAppear button height: %f", loopButtonSize.height);
}

但这显示错误的按钮大小(1000 而不是例如 43) 我的按钮具有动态更改大小,因此我不能使用恒定大小值。

这对我有用,但它会在视图加载后更改按钮形状。因此,如果我使用动画加载,那么第二个出现方形按钮,然后变为圆形。

-(void)viewDidAppear:(BOOL)animated{
    CGSize loopButtonSize= _loopButton.frame.size;
    _loopButton.layer.cornerRadius=loopButtonSize.height/2.0f;

    NSLog(@"viewDidAppear button height: %f", loopButtonSize.height);

}

任何想法如何正确地制作它?

【问题讨论】:

    标签: ios objective-c uiview viewdidappear


    【解决方案1】:

    在 viewDidLayoutSubviews 方法中编写代码来圆角按钮,因为它是在视图布局后立即调用的,您将使按钮正确圆角。

    【讨论】:

      【解决方案2】:

      将该代码放入您的 viewDidLayoutSubviews 方法中。

      【讨论】:

      • 是的,您应该接受@Aakash 的回答。他在我之前发布了他的(几秒钟)。
      最近更新 更多