Символ обратной связи iOS 7?

Мне очень нравится форма кнопки со стрелкой назад в iOS 7, и я хотел бы использовать ее на одном из моих UIButtons, но вроде > вместо <. Был бы способ с текстом, или я должен просто использовать изображения?

Ответ 2

Вы должны использовать изображение. Эти активы в оригинальном размере от Apple. Вот, пожалуйста, просто щелкните правой кнопкой мыши и сохраните каждый из них.
1x: 1x

2x: 2x

3x: 3x

Источник: https://developer.apple.com/design/resources/

Ответ 3

Вы можете извлечь все изображения iOS7 с помощью Cédric Luthi iOS-Artwork-Extractor, доступного на GitHub: скомпилируйте это приложение в симуляторе и найдите UINavigationBarBackDefault.png.

Изображение UINavigationBarBackDefault.png.

Альтернативой является получение файла Teehan + Lax iOS7 GUI PSD (iPhone). Он содержит большую часть работ iOS7. Там также есть Sketch App: Teehan + Lax iOS7 GUI для эскиза.

Ответ 4

Мое решение - использовать символ Юникода в качестве значка кнопки "Назад":

<

ОДИННАДЦАТЫЙ ЦИКЛ Unicode: U + 2039, UTF-8: E2 80 B9

HTML-объект: &lsaquo;

Минус:

  • Не похож на реальный значок кнопки назад, но достаточно близко для меня.

Преимущества:

  • Простая и быстрая реализация
  • Нет файла изображения.
  • Таким образом, цвет значка кнопки "Назад" не является фиксированным, но может корректироваться с помощью изменений цветового дизайна/новых версий iOS

Инструкция:

  • Показать OS X Character Viewer (рядом с часами, возможно, вам нужно активировать его в настройках → Клавиатура)
  • В левом списке нажмите "Круглые скобки"
  • В Xcode поместите свой текстовый курсор внутри строки, которую вы определяете как текст кнопки возврата
  • В средстве просмотра символов нажмите на первую запись в третьей строке (мне нужно было щелкнуть несколько раз, пока она не была вставлена ​​в Xcode)

Возможно, есть еще лучшие персонажи, которые выглядят как значок кнопки...

Ответ 5

Скопируйте и вставьте.

Сделайте вид 32 x 32.

Для позиции обычная позиция iOS - 24 от левой безопасной области.

@IBDesignable class BackArrow32Button: UIButton {
  override func draw(_ rect: CGRect) {
    //
    // this is just carefully MATCHED to the Apple one (2019)
    // make the box > 32x32 < and have it > 24 on the left from safe area <
    //
        let bezierPath = UIBezierPath()
        bezierPath.move(to: CGPoint(x: 17, y: 6))
        bezierPath.addLine(to: CGPoint(x: 7, y: 16))
        bezierPath.addLine(to: CGPoint(x: 17, y: 26))
        UIColor.black.setStroke()
        bezierPath.lineWidth = 3
        bezierPath.stroke()
  }
}

Деталь...

Я не добавил собственный размер контента, так как,

(A) это, вероятно, проще для новых программистов, подобных этому

(B) Вообще говоря, внутренний размер просто нарушается в конструкторе интерфейсов, поэтому для облегчения жизни вам лучше просто указать высоту и ширину с ограничением:/

Ответ 6

я хотел ответить на этот вопрос:

Создание кнопки со стрелкой влево (например, стиль UINavigationBar's "назад") на панели UIToolbar

(вдохновленный ответом мачуты там), но он заблокирован, и, будучи новым, у меня нет представителя... в любом случае, версия swiftui:

struct BackArrow: View
{
    @Environment(\.horizontalSizeClass) var hsc: UserInterfaceSizeClass?
    @Environment(\.verticalSizeClass) var vsc: UserInterfaceSizeClass?

    var color: Color

    var body: some View {

        Path { path in

            let height = self.arrowHeight(h: self.hsc, v: self.vsc)
            let width = height * 0.6

            path.move(to: CGPoint(x: width * 5.0 / 6.0, y: height * 0.0 / 10.0))
            path.addLine(to: CGPoint(x: width * 0.0 / 6.0, y: height * 5.0 / 10.0))
            path.addLine(to: CGPoint(x: width * 5.0 / 6.0, y: height * 10.0 / 10.0))

            path.addQuadCurve(  to:         CGPoint(    x: width * ((6.0 / 6.0) + self.fudgeFactor(h: self.hsc, v: self.vsc)),
                                                        y: height * ((9.0 / 10.0) - (self.fudgeFactor(h: self.hsc, v: self.vsc) * 1.666666))),
                                control:    CGPoint(    x: width * ((6.0 / 6.0) + self.fudgeFactor(h: self.hsc, v: self.vsc)),
                                                        y: height * 10.0 / 10.0))

            path.addLine(to: CGPoint(   x: width * ((2.0 / 6.0) + (3 * self.fudgeFactor(h: self.hsc, v: self.vsc))),
                                        y: height * 5.0 / 10.0))

            path.addLine(to: CGPoint(   x: width * ((6.0 / 6.0) + self.fudgeFactor(h: self.hsc, v: self.vsc)),
                                        y: height * ((1.0 / 10.0) + (self.fudgeFactor(h: self.hsc, v: self.vsc) * 1.666666))))

            path.addQuadCurve(  to:         CGPoint(    x: width * 5.0 / 6.0,
                                                        y: height * 0.0 / 10.0),
                                control:    CGPoint(    x: width * ((6.0 / 6.0) + self.fudgeFactor(h: self.hsc, v: self.vsc)),
                                                        y: height * 0.0 / 10.0))

        }
            .fill(color)
            .offset(x: -8.0, y: -5.0) // there probaby some better way to figure this out, but i've wasted too much time already ...
    }

    private func fudgeFactor(h: UserInterfaceSizeClass?, v: UserInterfaceSizeClass?) -> CGFloat
    {   return h == .compact ? ( v == .compact  ? 0.01      // (c, c): normal phone, landscape
                                                : 0.003 )   // (c, r): any phone, portrait
                            : ( v == .compact   ? 0.01      // (r, c): large phone, landscape
                                                : 0.003 )   // (r, r): ipad, full-screen, any
    }

    private func arrowHeight(h: UserInterfaceSizeClass?, v: UserInterfaceSizeClass?) -> CGFloat
    {   return h == .compact ? ( v == .compact  ? 18.0      // (c, c): normal phone, landscape
                                                : 21.0  )   // (c, r): any phone, portrait
                            : ( v == .compact   ? 18.0      // (r, c): large phone, landscape
                                                : 21.0 )    // (r, r): ipad, full-screen, any
    }
}

это грязный хак, но опять же, пытаясь сделать что-нибудь удаленное в swiftui, сейчас все равно кажется довольно хакерским...

Ответ 7

Это лучше всего было бы добиться за счет использования изображений. Невозможно сделать это с текстом, извините.

Я смог найти это изображение, это a .png