iOS上是否有一种字体有蓝牙标志的字形?也许是一些 Dingbats,还是 Emoji?WiFi标志怎么样?
编辑:有这样一个字符的第三方字体怎么样,我可以许可和运送的字体?
不,蓝牙徽标不是字形或字体字符。
正如 Seva 所说,它是符文 Hagall (ᚼ) 和 Bjarkan (ᛒ) 的组合。我试图通过组合这两个符号来做同样的事情。
我通过首先找到具有这两个字符的字体来实现这一点。我最终使用了 LeedsUni。你可以在这里下载:http ://www.personal.leeds.ac.uk/~ecl6tam/ 。
您需要在 info.plist 中引用字体所在的路径。
<key>UIAppFonts</key>
<array>
<string>Fonts/LeedsUni10-12-13.ttf</string>
</array>
然后我创建了两个相互重叠的UIView
对象(UIButton
在我的例子中是对象),以便两个字符正确排列。根据您使用的字体,您可能需要调整 UIView 框架的 x 和 y 值。
我的代码在 C# 中,因为我使用的是 Xamarin,但您应该能够在 Objective C 或 Swift 中做同样的事情。
UIView bleView = new UIView(new CGRect(0, 0, 34.0f, 34.0f));
string fontName = "LeedsUni";
UIButton bluetoothToSerialButton = new UIButton(UIButtonType.RoundedRect);
bluetoothToSerialButton.Frame = new CGRect(0, 0, 34.0f, 34.0f);
bluetoothToSerialButton.SetTitleColor(UIApplication.SharedApplication.Delegate.GetWindow().TintColor, UIControlState.Normal);
bluetoothToSerialButton.SetTitle("ᛒ", UIControlState.Normal);
bluetoothToSerialButton.Font = UIFont.FromName(fontName, 34.0f);
UIButton bluetoothToSerialButton2 = new UIButton(UIButtonType.RoundedRect);
bluetoothToSerialButton2.Frame = new CGRect(-3.5f, 0, 34.0f, 34.0f);
bluetoothToSerialButton2.SetTitleColor(UIApplication.SharedApplication.Delegate.GetWindow().TintColor, UIControlState.Normal);
bluetoothToSerialButton2.SetTitle("ᚼ", UIControlState.Normal);
bluetoothToSerialButton2.Font = UIFont.FromName(fontName, 34.0f);
bleView.AddSubviews(new UIView[] { bluetoothToSerialButton, bluetoothToSerialButton2 });
在 Swift 4.1 中使用 Quartz2D
如果您讨厌使用外部字体或添加一堆 .png 文件,您可能更喜欢使用 Quartz2D 获得相同效果的简单类。
这适用于我的 20x20 点徽标。您可能想要优化几何图形或线宽。另请注意,框架的宽度应等于高度。
请注意,如果大小发生变化,您将需要使用 setNeedsDisplay。
import UIKit
class BluetoothLogo: UIView {
var color: UIColor!
convenience init(withColor color: UIColor, andFrame frame: CGRect) {
self.init(frame: frame)
self.backgroundColor = .clear
self.color = color
}
override func draw(_ rect: CGRect) {
let context = UIGraphicsGetCurrentContext()
let h = self.frame.height
let y1 = h * 0.05
let y2 = h * 0.25
context?.move(to: CGPoint(x: y2, y: y2))
context?.addLine(to: CGPoint(x: h - y2, y: h - y2))
context?.addLine(to: CGPoint(x: h/2, y: h - y1))
context?.addLine(to: CGPoint(x: h/2, y: y1))
context?.addLine(to: CGPoint(x: h - y2, y: y2))
context?.addLine(to: CGPoint(x: y2, y: h - y2))
context?.setStrokeColor(color.cgColor)
context?.setLineCap(.round)
context?.setLineWidth(2)
context?.strokePath()
}
}
这些是来自谷歌材料设计的图标,你可以从这里下载它们https://material.io/tools/icons/?icon=bluetooth&style=baseline
没有表情符号,只是在我的 iPad 上查看过。
如果您不希望它可扩展,只需使用蓝牙徽标的 PDF 或 EPS,否则只需使用 png。