如何在加载视图之前获取按钮大小?

How to get button size before view is load?

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

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

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

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

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

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

}

有什么正确的想法吗?

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

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