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

不规则边框生成方案

本文将介绍一种配合 SVG 滤镜实现各种不规则图形添加边框小技巧。...本文完整 DEMO,你可以戳这里:transparent 配合 SVG feMorphology 滤镜生成不规则边框 需求背景,给不规则图形添加边框 在我们日常开发,时长会遇到一些非矩形、非圆形图案...使用 SVG feMorphology 滤镜添加边框 我们还可以换个思路,复制一个原图形,再将其稍微放大一点点改变为边框颜色,然后两个图形叠加在一起,就能够生成一个带边框不规则图形了。...,再将其稍微放大一点点改变为边框颜色,然后两个图形叠加在一起,就能够生成一个带边框不规则图形了。...,但是无法实现给不规则图形添加实体不带模糊边框 使用 feMorphology SVG 滤镜可以实现给给不规则图形添加边框效果,通过控制 radius="1" 可以调节边框大小 使用 feMorphology

91720

iOS 不规则ImageView「建议收藏」

我们在做iOS开发时候,往往须要实现不规则形状头像,如: 那怎样去实现? 通常图片都是矩形,假设想在client去实现不规则头像,须要自己去实现。...CAShapedLayer有个path属性。将内容Layermask设置为maskLayer, 就能够获取到我们想要形状。...可是有些形状假设你不熟悉几何知识的话是构造不出正确 path,从代码上我们能够看到我们能够通过设置CALayercontents属性来设置显示内容,那我们 是不是能够通过设置CAShapedLayer...,执行效果例如以下: 不停改变CALayer一个坏处就是很损耗性能,假设你有一个cell列表。...高速滑动时候。你会发现很的卡。 此时理想解决方式是使用CGPath或者UIBezierPath构建不规则path,然后clip画出来。这里就不具体解说了。

77010
您找到你想要的搜索结果了吗?
是的
没有找到

iOS开发——GCD在Swift变脸

Xcode8正式发布后,Swift3也随即发布,为了跟上苹果这艘大船脚步,赶紧逼着自己看文档哦。...在看文档过程,发现GCD变化跟OC相比简直都要不认识了,赶紧写个文章总结下,顺手复习下GCD死锁概念,死锁总结发布在另一篇文章里了。...取消过去接口 说起 GCD, 大家肯定回想起类似 dispatch_async 这样语法。 GCD 这个语法模式无论是和 Objc 还是 Swift 整体风格都不太搭调。...所以 Swift 3 对它语法进行了彻底改写。...比如最常用,在一个异步队列读取数据, 然后再返回主线程更新 UI, 这种操作在新 Swift 语法是这样: DispatchQueue.global().async { DispatchQueue.main.async

2.2K20

iOS开发实现OC和Swift混编

原有的项目都是使用OC写,既然要在原有项目中引入swift文件首先就要实现OC和swift混编设置。 混编设置: 在OC项目中创建一个swift文件时候首先Xcode会弹出一个提示框: ?...这时我们要选择“Create Bridging Header”,这样就会在项目中生成一个进行OC和swift桥接.h文件文件和我们要创建一个swift文件。...将“Build Setting”“Defines Module”设置为“Yes”。 ? 设置Defines Module 3....在项目中创建一个.h文件,文件名:“项目名称-Swift.h”,如:OCAndSwift-Swift.h,创建完成之后我们在需要引入swift文件OC文件引入这个.h文件,然后在工程中将此.h文件删除...如果在OC文件无法使用此swift类,我们只需command + shift + R一下即可。

2.6K41

iOS - Swift UITableViewscrollToRow

简介 在tableView,我们一般会用到scrollToRow这个来控制tableView滚到指定某一行。...tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat 步骤一 我在 heightForRow 写了具体数据...3.最后在调一次 heightForRow 后面的2和3是针对最新消息 步骤二 我在 heightForRow 不再写死高度,�而是从模型数据动态获取高度(高度是在cell布局后获取,再赋值到模型数据...所以在上面的情况,发送完消息后,最新消息cell的确是插入到了tableView,也有显示出来(后面我自己测),但就是无法滚到最新消息那一行,就是因为 heightForRow 返回高度为0...在上面的情况,向上拉一点距离露出cell后scrollToRow才有效就是因为此时heightForRow返回高度不再为0 解决方案 按本人自身情况来说,有两种解决方法 第一种 在传入模型数据给予明确计算出来数值就好

1.7K50

iOS开发中使用系统没有的字体-swift

https://blog.csdn.net/u010105969/article/details/80068714 背景: 在学习swift一个demo见到了设置字体方法(系统没有的字体...方法: 需要将我们要使用字体且系统没有的导入到我们项目中,字体文件是以.ttf为后缀。 ? 字体文件 将字体导入到工程后,在info.plist文件添加我们导入字体 ?...info.plist 在“Build Phases”“Copy Bundle Resources”添加我们导入字体 ?...build phases 在做了以上工作之后,我们可以通过打印所有的字体,看我们刚才添加字体是否可用。...demo地址:https://gitee.com/liangsenliangsen/swift_uses_custom_fonts.git 本篇文章到这里就结束了,愿大家加班不多工资多,男同胞都有女朋友

1.1K30

Swift专题】聊聊Swift属性

Swift专题】聊聊Swift属性 引言 属性是面向对象语言中非常基础语法特性,我们讲属性,实际上就是讲与类本身或类实例关联数据。...在面向对象语言中,类作为重要数据结构会封装数据与函数,类函数我们通常称其为方法,而数据则就是属性。 Swift语言是一门比较现代化语言,并且直到今日,其还在不断进行语法特性与编程模式更新。...在Swift,计算属性可以在_类、结构体和枚举定义,而存储属性只允许在**类**和结构体_定义。 存储属性 存储属性定义在类或结构体,可以将存储属性定义为常量也可以定义为变量。...另外,Lazy只能修饰定义为变量属性,不能修饰常量属性,这是因为懒加载本身逻辑是与Swift常量属性性质相悖Swift常量属性必须在实例构造好前完成初始化,而懒加载属性是允许实例构造完成后属性并未初始化...还有一点需要注意,一般情况下,我们无需访问属性包装器真实存储数据存储属性,但Swift语言也提供了一种方式来访问此属性值,仍然是通过语法规范约定方式,只需要将属性包装器存储属性属性名定义为projectedValue

13510

Swift asyncawait

async-await 是在 WWDC 2021 期间 Swift 5.5 结构化并发变化一部分。Swift并发性意味着允许多段代码同时运行。...async 如何取代完成回调闭包 async 方法取代了经常看到完成回调。完成回调在Swift很常见,用于从异步任务返回,通常与一个结果类型参数相结合。...执行数据请求 } 在如今Swift版本,使用完成闭包来定义方法仍然是可行,但它有一些缺点,async 却刚好可以解决。 你必须确保自己在每个可能退出方法调用完成闭包。...Swift引入withCheckedThrowingContinuation方法,可以不费吹灰之力地转换基于闭包方法。...继续你Swift并发之旅 并发变化不仅仅是 async-await,还包括许多新功能,你可以从你代码受益。

3.4K30

Swift 遍历

上一篇曾经说过,2020 年我接触了项目管理、iOS 开发、goLang 开发,所以,后续更新内容也会逐步丰富起来。 如果你觉得这个公众号对你有帮助,不妨推荐给你小伙伴们,谢谢。...---- 在 Swift 实现循环/遍历有如下几种方式: 1.1 for-in 1.1.1 遍历区间 1.1.1.1 顺序遍历 for index in 0 ..< 5 { print(index...指定闭区间 使用 range.reversed() 来指定逆序循环 如果在循环体,不需要使用 index,则可以用 _ 替换 index 1.1.2 遍历数组 1.1.2.1 顺序遍历 let test...我们可以实现 Strideable 协议,也可以使用 Strideable 协议 stride 方法直接进行循环操作 1.3.1 使用 stride(from,to,by) 顺序循环 0 至 10(...Int ,当我们想对自己定义类型进行循环时,这样方式并不方便,好在我们可以使用 Strideable 协议解决这个问题 首先我们定义一个类,代表素数 class Prime { public

2.9K20

iOS一点点 - Swift 标准库 String

参考资料 Swift Standard Library Reference 主体为对该链接 String 部分理解基础上翻译,但有较大改动且加入更多个人见解与扩展内容 Unicode and you...我很喜欢读这种态度文章,也希望自己文章能有这种水平,希望你也喜欢。 正文 Swift 标准库提供了 String 文本类型,适用 Unicode 文本。...字符串第 n 个位置存第 n 个字 这样逻辑有什么问题?为了理解 Swift 这样设计目的,下面要简单扯下字符集。...实际上不止是 “A” ,UTF-8 是兼容 ASCII ,所有 ASCII 内字符在 UTF-8 和 ASCII 表示都一样,也即都是占一个字节 另一个有趣细节。。。...这就破坏了上表字节和字符一一对应关系,数据结构第 n 位和字符串第 n 个字符之间对应关系没了。

83520

iOS - Swift UIButtonImageViewanimationImages动画执行完毕后,图标变暗

那只好上证据了~ // 设置语音按钮高亮图片 voiceButton.setImage(#imageLiteral(resourceName: "message_voice_sender_normal..."), for: .highlighted) 那知道原因之后就很好解决了 解决方案 方案一:设置按钮高亮图片 将按钮高亮图片与普通状态下一致即可。...这里就再赘述了 方案二:adjustsImageWhenHighlighted = false 在UIButton中有这么一个属性 adjustsImageWhenHighlighted 查看官方文档说明...并且该值默认值为true 所以我们也可以将属性adjustsImageWhenHighlighted设置为false,不让系统自动帮我们设置高亮状态下显示图片即可。...效果 完美 附上相关项目:Swift 3.0 高仿微信

1.5K30

iOS - Swift 创建代理协议多种方式

首先,代理协议命名方式:类名 + Delegatev protocol LXFViewDelegate { func view(_ view: LXFView) } 当我们创建协议遵守其它协议情况下...,只是这样写并不会报错,接下来我们在LXFView添加一个代理属性,为避免循环引用,代理属性需要用weak修饰 class LXFPageView: UIView { weak var...报错 意思是weak只能修饰一个类或者类绑定协议类型 正如提示一样,我们当前代理并非是一个类或者类绑定协议类型 当前我们这个协议不仅可以被类遵守,还可以被结构体和枚举所遵守(这里不演示了)...,这无法达到weak要求,那怎么办呢?...objc 这种方式下优点是协议方法不强制实现

44130
领券