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

时间:2016-12-10 14:01:41

标签: ios objective-c uiview viewdidappear

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

-(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);

}

任何想法如何正确使用?

2 个答案:

答案 0 :(得分:1)

编写代码以在viewDidLayoutSubviews方法中围绕按钮,因为它在视图布局后立即调用,您将使按钮正确舍入。

答案 1 :(得分:1)

将该代码放入viewDidLayoutSubviews方法。