小编doc*_*eer的帖子

用Autolayout实现按钮的网格布局

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

我正在使用自动布局来定位按钮,并在每个按钮上绘制一个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,@"行只有一个像素.

限制是:

  • 顶部黑色区域具有固定高度
  • 所有按钮高度相同
  • 在数字行中,数字按钮设置为相同的宽度,THRU,AND,ALL OFF和ENTER按钮设置为相同的固定宽度
  • 顶部的按钮固定在黑色区域的底部,底部的行固定在superview的底部.在IB中按钮的位置相互对接.

在界面构建器中和运行时,我没有看到任何自动布局错误; 并且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)

ios autolayout

7
推荐指数
1
解决办法
3459
查看次数

标签 统计

autolayout ×1

ios ×1