java 计算九宫格_(7)、九宫格计算

9257711161e5b0b09dfd371ac9ed3af5.png

使有九宫格方法计算位置来解决这个问题:

61fb6288d87d9a167c59f0cef9cb9cb8.png

4dcf805756e72d2a8643c32935aa15a0.png

只计算出一个X值的效果图如下:

56b991e0332dffdaa28873310e49a6b0.png

处在同一列的控件的x值相同,处在同一行控件的y值相同

8e282cc495f1ce4d1f18615f1369f622.png

只需要算出它们的行号和列号就能知道他们的位置

6f950c2762c2217b55da9babe70cf5fe.png

2058eabc44ed144c187f3780b6c9736c.png

这样设置后发现狂点后,添加的控件会超出白色视图

解决方法可以使用裁剪方法:

3d494062cac0eea11bf18dd5103ab0bc.png

虽然用了裁剪,但用调试工具还可以看得见

f2c383cf87e4a9706f5e0cb188b669e6.png

接着做添加不同的商品,要做出如下效果:

255d50a716fafdb49cea66e08f54bc18.png

通过数据的存取,来获取不同的数据

f3fffb33eb662621a1176d20da4d09e0.png

26d610aba51ef70c9a87fc7a679d0763.png

效果图如下:

7de1a34a7ddc7302be96da8b8c7a6291.png

179e56a963b1a5664acdd9bd7a0c1098.png

使有文档注释的好处:使用文档注释,然后在使用它的时候在提示中会提示出添加的注释:

53178bf527de96a070c1af7a602d2d40.png

只添加6个数据,当点击添加按钮到六个的时候,再次添加时就会出现闪退,解决这个问题的方法如下:就得在操作添加和删除按钮的时候进行控制:

声明添加按钮属性:

cfb6c057809cc109c28eb844d46f4371.png

在创建的时候直接将返回UIButton类型的对象赋值给添加按钮和删除按钮:

175275461c4b8427314e7b31a77e379a.png

161b47b6d5f292d0f10c75cb83044759.png

然后在add添加方法中进行设置:

a729091c560d087d75d2bb60f3788d82.png

效果图如下:

262bc51e82cf471071404f3ef52edf6a.png

设置在程序加载视图完毕后就先禁用删除按钮:

23020a6672f09ad855160172741c482e.png

074982ccdaace5c3704ead391a4ba403.png

删除按钮方法:

a449c7a76f6c476ebc6aadf730803c69.png

完整的代码如下:

8af9cd53256e0e04daa1766118fb2723.png

b70a196669e257fbf6d2b17b9e1440bf.png

12843e5c913059c8619c4f1c7eb95be1.png

97e9cc6515be9237e28e4cc78328d5b4.png

9f9cdcfc8afc180b2bea3dc3820851d8.png

ad3cc0e2b149e6eaaafce1c53aa8c2af.png

589693cd9a6a221c5296803e74c68c7a.png

这样就实现了当白色视图中有控件时,删除按钮就可用,当没有时就删除按钮就不可用,当白色按钮里的控件数量小于数组中的数量时,添加按钮就可用,当等于时添加按钮就不可用。

016be28034553b3fddbcaf813265f0a2.png

5db55e27015aa220b9d04e88575ce0ad.png

接下来做显示指示器,当添加满了的时候和删除完了的时候做个提示显示:

通常把显示器称为:HUD指示器、蒙板、遮盖

设置storyboard中控件的名称,方便识别,如下操作:

2e62b7f5321e179d545ae873b3e1c476.png

隐藏label控件的三种方法

905af63dc057c80c23ae213d440befd6.png

可以设置隐藏属性,透明度或直接将它删除

以上设置代码的效果相应于storyBoard中的如下设置

39d7ad9d6d8babcb92e32b1e6b165c7c.png

如果要在storyboard中改变label到白色视图的中间位置,不要直接托动它,因为托动它让它成为所有商品视图中的子控件,只能通过在storyboard中改变它的, 改变它的Y值,这样才不会改变它的层级关系

afafd9b6843ed32ccb6ec547ba502d4a.png

先将label设置为透明,再将它进行连线

c444b1848b59590ac829f438a3ec4870.png

0d628f25c2e3acd491ac33d4c4c5acf7.png

ea461ad3dc5087dd2b7126f32af3d00e.png

运行效果如下:

0db6136462aa137186a401cabd15f225.png

将label设置成黑底白色的样式

7b4f3d099bd34e6f2466f64d1e2d2f53.png

如果要设置成半透明,而如果直接将label的alpha设置成半透明,发现文字也成了半透明了,所以得将它的背景色设置半透明才行:

5f8a375b982e68f8b62c1220dc9d2adc.png

再次查看运行效果如下:

fdcd7379fc1df38c99fe6fea535ef1b3.png

948fd110622ae7ff709b20d284339fb9.png

实际中的用法:就可以实现了背景色半透明,而文字不会跟着透明

570b621a6c58a048dedd75046e41c49c.png

效果图如下:

3c57f83786c65158552ef864ca84c6ac.png

接着做隐藏显示器HUD

9ed50a964fc6359df71f816d31b61c4c.png

观察是否两秒后调用hidenHUD方法

d1c2068fe354adc29b915dfdda4c2adb.png

然后在隐藏HUD方中设置隐藏HUD显示提示

2122bb2547584c7fbbb6d068cc4ee6d1.png

也可以使用如下方法

afac57c721c5347b224a1ba657f3ad51.png

参数repeats:YES为重复

eda0a6461004fee5d6de8bad48fcd8e0.png

将相同的代码抽取出来

d0e352b8f28523acdc1cf8ba3a387436.png

总结:

b2abe20c69962713b477c970314cf422.png

7ebbfe217cb86d5fc02ba095c8a04c9e.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值