RoundedUI
使用 Swift 编写的在 Interface Builder 上配置圆角 UI 组件。
在移动项目中,通常会有一种视图/按钮类型,我们称之为圆角按钮/视图,因为它具有以下属性:
- 完全圆角,看起来像一个圆,或者具有自定义的圆角半径。
- 具有边框和边框颜色及宽度。
- 可能或有阴影。
圆角按钮与圆角视图具有相同的上述属性,但有一些特定的按钮属性
- 没有背景图片,使用颜色替换。
- 是复合的(由许多按钮组合而成)。
不幸的是,Apple 并不支持直接修改 Interface Builder 中的属性以及修改界面。开发者必须手动编写代码,这既无聊又乏味。因此,创建了此框架,以便方便、容易地支持这些属性,并可在其他项目中重用。
要求
- iOS 9.0+
示例
要运行示例项目,请克隆仓库,然后首先从 Example 目录中运行 pod install
。
安装
RoundedUI可以通过CocoaPods获取。要安装它,首先在Podfile中添加以下行
pod 'RoundedUI'
之后确保这一行不要被注释掉
use_frameworks!
使用
创建方法
编程方式
let view = RoundedView()
let button = RoundedButton()
Storyboard 和 XIB
- 拖拽一个新的UIButton或UIView。
- 将UIButton的类设置为RoundedButton或UIView的类设置为RoundedView(注意:您也可以将UIView的类设置为RoundedButton)。
- 为RoundedButton或RoundedView设置圆角配置或其他您需要的参数。
以下是一个配置示例视频:https://drive.google.com/file/d/1sAkDJGXIr0xWwuFAdjmtl0CsprAqkHfI/view?usp=sharing
可配置属性(在代码和Interface Builder中)
因为UIView没有如UIButton的高亮、选中和禁用状态。因此,这些类之间会有一些不同。
填充色
圆角按钮
fillColorNormal
:正常状态的填充色。默认为UIColor.clearColor()
。fillColorHighlighted
:高亮状态的填充色。默认值为fillColorNormal
,如果fillColorNormal
与RGB兼容,则使用较深的色调,否则为nil。fillColorSelected
:选择状态的填充色。默认为UIColor.clearColor()
。fillColorDisabled
:禁用状态的填充色。默认为UIColor.clearColor()
。
圆角视图
fillColor
:填充色。默认为透明的UIColor.clearColor()
。
边框颜色
圆角按钮
strokeColorNormal
:正常状态的边框颜色。默认为UIColor.clearColor()
。strokeColorHighlighted
:高亮状态的边框颜色。默认值为strokeColorNormal
,如果strokeColorNormal
与RGB兼容,则使用较深的色调,否则为nil。strokeColorSelected
:选择状态的边框颜色。默认为UIColor.clearColor()
。strokeColorDisabled
:禁用状态的边框颜色。默认为UIColor.clearColor()
。
RoundedView
strokeColor
:边框颜色。默认为UIColor.clearColor()
边框宽度
borderWidth
:边框线宽。默认为0
。
圆角
cornerRadius
:圆角半径。默认为0
。isCircle
:尝试将其圆角变为圆形。如果为true
,则忽略cornerRadius
。
高亮(仅对RoundedButton有效)
highlightedEnabled
:当点击时启用高亮状态。如果为YES
(或true
),则按钮在点击时高亮显示,否则按钮不显示高亮。
组合(仅对RoundedButton有效)
components
:按顺序设置子组件以配置组合按钮。默认为空。
阴影
注意:当配置阴影时,请确保已关闭clipsToBound
,否则阴影将不可见
shadowColor
:层的阴影颜色。
此属性的默认值是不透明的黑色。shadowRadius
:用于渲染层阴影的模糊半径(以点为单位)。
指定此半径。此属性的默认值为3.0。shadowOffset
:层阴影的偏移量(以点为单位)。
此属性的默认值为(0.0, -3.0)。shadowOpacity
:层阴影的不透明度。
此属性中的值必须在0.0(透明)到1.0(不透明)的范围内。此属性的默认值为0.0。
高级圆角
有时你可能只想对某些特定的角进行圆角处理,比如只对左上角、右下角等进行圆角处理。在这种情况下,AdvanceRoundedView
和AdvanceRoundedButton
提供了以下属性,允许你选择性地对特定角进行圆角或不圆角处理:
roundTopLeft
:圆角视图的左上角。如果为true
,则为圆角,否则不为圆角。roundTopRight
:圆角视图的右上角。如果为true
,则为圆角,否则不为圆角。roundBottomLeft
:圆角视图的左下角。如果为true
,则为圆角,否则不为圆角。roundBottomRight
:圆角视图的右下角。如果为true
,则为圆角,否则不为圆角。
注意:
- 由于在实现此功能时可能会遇到典型的技术问题,请尽可能多地使用
RoundedView
和RoundedButton
。只有当你需要圆角特定的角时才使用AdvanceRoundedView
和AdvanceRoundedButton
。 AdvanceRoundedView
和AdvanceRoundedButton
与bounds
或frame
更改动画不兼容。相反,请使用RoundedView
和RoundedButton
。如果你尝试使用AdvanceRoundedView
和AdvanceRoundedButton
进行动画处理,结果可能很奇怪且不确定。
作者
Hien,[email protected]
许可证
RoundedUI在MIT许可证下提供。有关更多信息,请参阅LICENSE文件。