测试已测试 | ✓ |
语言语言 | SwiftSwift |
许可协议 | MIT |
发布最后发布 | 2016 年 6 月 |
SPM支持 SPM | ✗ |
由 Mateusz Fidos 维护。
要运行示例项目,请克隆源代码库,打开并运行 Example scheme。
ARC
iOS8
MFCircleDialPad 可通过 CocoaPods 获取。要安装它,只需将以下行添加到 Podfile 中
pod "MFCircleDialPad"
从以下导入开始
import MFCircleDialPad
定义和自定义项目
您可以使用自定义文本、bgColor、图像或大小来构建项目。
var items:[MFDialPadItem] = []
for idx in 0..<10
{
items.append(MFDialPadItem(text: "\(idx)", backgroundColor: nil, image: nil, radius: 60))
}
同样也适用于中央项目
let centerItem = MFDialPadCenterItem(backgroundColor: UIColor.clearColor(), image: nil, radius: 80)
如果您需要,可以定义一些额外的资产,以便在拨打盘改变状态(值)时使用,以便中央项目可以有多个图像(初始库中已经有一些可以使用 - 参见示例)
centerItem.setImageForState(UIImage(named: "phonecallarrow")!, state: MFDialPadItemState.MFDialPadItemStateDefault)
centerItem.setImageForState(UIImage(named: "phonecallgreen")!, state: MFDialPadItemState.MFDialPadItemStateValid)
centerItem.setImageForState(UIImage(named: "phonecallred")!, state: MFDialPadItemState.MFDialPadItemStateInvalid)
每当这个代理方法被调用时
public protocol MFDialPadControlDelegate
{
func dialPadDidChangeValue(value:Int)
}
您检查所选择的号码实际上是否是有效的电话号码
func dialPadDidChangeValue(value: Int)
{
self.numberField.text = self.numberField.text?.stringByAppendingString("\(value)")
self.control.updateCenterItemIfValid(self.numberField.text!)
}
您还可以实现
MFDialPadOrientationHandlerDelegate
以接收每次方向变化时的通知
func orientationDidChange(orientation: UIDeviceOrientation)
{
self.control.center = self.view.center
self.control.updatePosition()
}
此方法有助于拨打盘在检测到碰撞且空间不足时调整其大小或半径
self.control.updatePosition()
灵感来自:https://github.com/Ramotion/circle-menu
Mateusz Fidos, [email protected]
MFCircleDialPad 可在 MIT 许可协议下使用。有关更多信息,请参阅 LICENSE 文件。