蓝牙标志在iPhone上可以作为字符使用吗?

问题描述 投票:0回答:6

iOS 上是否有一种字体带有蓝牙徽标的字形?也许是一些标志,或者表情符号? WiFi标志怎么样?

编辑:有这样一个字符的第三方字体怎么样,我可以许可和发货?

ios bluetooth
6个回答
10
投票

不,蓝牙徽标不是字形或字体字符。


5
投票

就像 Seva 所说,它是符文 Hagall (ᚼ) 和 Bjarkan (ᛒ) 的组合。我试图通过组合这两个符号来完成同样的事情。

我通过首先找到具有这两个字符的字体来实现这一点。我最终使用了利兹大学。您可以在这里下载: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 });

5
投票

在 Swift 4.1 中使用 Quartz2D

如果您讨厌使用外部字体或添加一堆 .png 文件,您可能更喜欢一个简单的类来使用 Quartz2D 获得相同的效果。

这对我来说适用于 20x20 点的徽标。 您可能想要优化几何形状或线宽。 另请注意,框架的宽度应等于高度。

请注意,如果尺寸发生变化,您将需要使用 setNeedsDisplay。

enter image description here

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()
    }
}

2
投票

这些是来自谷歌材料设计的图标,您可以从这里下载它们https://material.io/tools/icons/?icon=bluetooth&style=baseline enter image description here


1
投票

没有表情符号,只是在我的 iPad 上查看。

如果您不希望蓝牙徽标可缩放,只需使用 PDF 或 EPS 格式,否则只需使用 png。


0
投票

转换为 SwiftUI:

struct BluetoothLogo: View {
    var color: Color
    var size: CGFloat
    
    var body: some View {
        Canvas { context, size in
            let h = size.height
            let y1 = h * 0.05
            let y2 = h * 0.25
            
            var path = Path()
            path.move(to: CGPoint(x: y2, y: y2))
            path.addLine(to: CGPoint(x: h - y2, y: h - y2))
            path.addLine(to: CGPoint(x: h / 2, y: h - y1))
            path.addLine(to: CGPoint(x: h / 2, y: y1))
            path.addLine(to: CGPoint(x: h - y2, y: y2))
            path.addLine(to: CGPoint(x: y2, y: h - y2))
            
            context.stroke(
                path,
                with: .color(color),
                lineWidth: 2
            )
        }
        .frame(width: size, height: size)
        .background(Color.clear)
    }
}

struct BluetoothLogo_Previews: PreviewProvider {
    static var previews: some View {
        BluetoothLogo(color: .blue, size: 100)
            .previewLayout(.sizeThatFits)
            .padding()
    }
}
© www.soinside.com 2019 - 2024. All rights reserved.