使用 Stately 字体(http://intridea.github.io/stately/)绘制 USA 状态颜色图的 iOS 控件。
适用于 iPhone/iPad 应用程序。
您可以通过两种方式安装此控件
使用 CocoaPods:简单地将它添加到您的 podfile 中
pod 'USStatesColorMap', '1.0.0'
手动
从该存储库下载源,并将 USStatesColorMapDemo/USStatesColorMap 文件夹复制到您的项目中。
别忘了将 CoreText 框架 添加到您的项目。
小贴士:要使用此控件,您需要将 CoreText 框架添加到您的项目中。
小贴士:Stately 字体会动态加载,所以请不要将其添加到您的 info.plist 文件中。
小贴士:控件的高度必须等于宽度,例如:w:320 h:320,w:160 h:160,w:100 h:100,等等。
您可以在 Interface Builder 中简单地添加 UIView 并将其类更改为 "USStatesColorMap"(将调用重写的 initWithCoder 方法)或使用 init 或 initWithFrame 方法以编程方式创建 USStatesColorMap。
USStatesColorMap 控件的界面提供了对每个州单独进行自定义或填充整个地图的能力。
如果您想更改特定州的颜色,例如阿拉斯加,您可以使用以下方法之一
[self.statesColorMap setColor:color forState:Alaska]; // Alaska = 1
// or
[self.statesColorMap setColor:color forStateByCode:@"AK"];
// or
[self.statesColorMap setColor:color forStateByName:@"Alaska"];
如果您想用一种颜色填充所有州,您可以使用 setColorForAllStates 方法
[self.statesColorMap setColorForAllStates:color];
如果您想要更改多个州的颜色,您需要使用 performUpdates 方法以避免每次更改州的颜色时重绘地图
[self.statesColorMap performUpdates:^{
[self.statesColorMap setColorForAllStates:unactiveStateColor];
[self.statesColorMap setColor:activeStateColor forState:Alabama];
[self.statesColorMap setColor:activeStateColor forState:Minnesota];
[self.statesColorMap setColor:activeStateColor forState:Nebraska];
[self.statesColorMap setColor:activeStateColor forState:NewMexico];
// ...
}];
版权 (C) 2013 BeKitzur,安德烈·切尔卡申
在此条件下,任何人获得此软件及其相关文档文件的副本(“软件”),被允许无需限制地处理软件,包括但不限于使用、复制、修改、合并、发布、分发、再许可和/或销售副本的软件,并允许将软件提供给人,以便他们这样做,前提是
上述版权声明和此许可声明应包含在所有副本或实质性部分的软件中。
本软件按“原样”提供,不提供任何形式的保证,包括(但不限于)适用性、特定用途适用性和非侵权性保证。在任何情况下,包括因合同、侵权或因软件或其使用或其他方式引起的损害,作者或版权所有者均不对任何索赔、损害或其他责任承担任何责任。