layoutIfNeeded无法在iPad

时间:2017-03-08 11:53:48

标签: ios objective-c

layoutIfNeeded在iPad上无法正常工作,但它正在iPhone上运行。我想要一个圆形按钮。在iPhone上,圆圈是正确生成的,但在iPad中它看起来像菱形。

_btnthur.layer.cornerRadius = _btnthur.frame.size.width/2;  
[self._btnthur layoutIfNeeded];

预期结果:

expected

当前输出:

current

1 个答案:

答案 0 :(得分:1)

我可以在这里看到两个主要问题:

  1. 在您的代码中,您要在btnthur上设置cornerRadius,但要告诉btnSat布局。
  2. 您不应该调用layoutIfNeeded,您应该调用setNeedsLayout并允许运行周期合并布局调用以提高性能。
  3. 希望这会有所帮助:)

    修改更新的问题:

    你的角半径在第二个方面是错误的,它太大了。您可以检查在设置转角半径的位置按钮上是否正确设置了框架?

    您可能想要移动代码

    _btnthur.layer.cornerRadius = _btnthur.frame.size.width/2;  
    [self._btnthur setNeedsLayout];
    

    进入layoutSubviewsviewDidLayoutSubviews(取决于视图或视图控制器),并确保在设置帧(或更重要的是,大小)时始终更新角半径。