MFCircleDialPad 版本 0.1.1

MFCircleDialPad 版本 0.1.1

测试已测试
语言语言 SwiftSwift
许可协议 MIT
发布最后发布2016 年 6 月
SPM支持 SPM

Mateusz Fidos 维护。



MFCircleDialPad 版本 0.1.1

MFCircleDialPad

示例

要运行示例项目,请克隆源代码库,打开并运行 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 文件。