首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

iOS开发 气泡和sheet

iOS开发 气泡和sheet

Demo 地址

需实现效果:

我们在日常开发中经常会用到这样的气泡控件,以前都是直接在GitHub里面找一个,最近有时间就想着自己写一个。

思路&实现路线1.获取必要参数

首先就是顶部的三角形,它的顶点是在我们点击的中心点的下方,所以要先拿到点击的的,因此我们就需要一个这样的必要参数:,把这个参数写到方法里面,参数:

以上参数需要解释的是,这是之前我的一个大佬同事教我的,目的是使用这个方法来替代,降低因使用而引起循环引用的几率。当然,也并不是适用替换所有的使用的场景,我贴一下,可选择使用。

还有,你点的是谁不重要,重要的是你把谁当做传过来,就以谁为标准来显示。

在方法里面获取到了我们需要的所有必要参数,需要显示的标题数组:,点击的view:。拿到这两个参数我们就可以确定气泡的具体位置了。至于其他的参数都是可有可无,直接给个默认值就行。当然,暴露出来给调用者选择更好。

2.准备画图

拿到数组以后,我们首先要做的要看一下这个数组中最长的字符串的长度是多少。因为我们的这个气泡肯定是要按照最长的长度来画。

于是我选择循环来拿到最大长度,并将两边留出8像素的空白,如果有图片的话,再加上24给图片留位置:

然后确定顶部三角形的高度

拿到的位置

至此,我们拿到了的位置、三角形的高度和的数量,那就可以直接确定气泡的了:

然后在里面添加三角形视图和下面的列表:

然后开始画三角形:

当pointView太过靠边的时候,箭头适当往内侧移动.png

箭头画完了,开始写列表了,我就直接用了一个循环:

全部文件代码

Demo 地址

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20210101A01P7T00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券