我试图实现一个非常类似于Apple内置计算器应用程序的按钮布局:

我正在使用自动布局来定位按钮,并在每个按钮上绘制一个0.5px的边框,目标是按钮之间有1px的间隙(比如calc app,特写显示上面的像素,来自视网膜设备).
边界适用于:
btn.layer.borderWidth=0.5f;
btn.layer.borderColor=[[UIColor blackColor] CGColor];
Run Code Online (Sandbox Code Playgroud)
并使用Interface Builder设置布局.

它几乎可以工作; 但是按钮之间的间隙存在一些差异 - 例如"1,2,3,直通"行和"4,5,6和"行之间的间隙是2像素,但是"7"之间的差距,8,9"和"cl,0,@"行只有一个像素.
限制是:
在界面构建器中和运行时,我没有看到任何自动布局错误; 并且autolayout信息的调试器转储给了我:
po [[UIWindow keyWindow] _autolayoutTrace]
*<UIWindow:0x10908a560> - AMBIGUOUS LAYOUT
| *<UILayoutContainerView:0x109136140>
| | *<UINavigationTransitionView:0x10908ef80>
| | | *<UIViewControllerWrapperView:0x109138870>
| | | | *<UIView:0x1090e6d10>
| | | | | *<UILabel:0x1090d5bb0>
| | | | | *<UIButton:0x1090d27e0>
| | | | | | <UIButtonLabel:0x1091c9190>
| | | | | *<UIButton:0x1090844c0>
| | | | | | <UIButtonLabel:0x1091c7990>
| | | | …Run Code Online (Sandbox Code Playgroud)