Сжатая ширина и высота NSButton Appkit.IOS

Программируем под IOS
Ответить
Anonymous
 Сжатая ширина и высота NSButton Appkit.

Сообщение Anonymous »

Я пытаюсь создать кнопки для своего плеера, однако получаю сжатые кнопки, хотя я назначил одинаковую ширину и высоту в наборе приложений NSButtons.
Это окончательный результат, который я получаю: -
мое изображение

Код: Выделить всё

private func setupControls() {
undoButton = createButton(imageName: "arrow.uturn.backward", target: self, action: #selector(undoAction))
redoButton = createButton(imageName: "arrow.uturn.forward", target: self, action: #selector(redoAction))
deleteButton = createButton(imageName: "trash", target: self, action: #selector(deleteAction))

rewindButton = createButton(imageName: "backward.end", target: self, action: #selector(rewindAction))
playPauseButton = createButton(imageName: "play", target: self, action: #selector(playPauseAction))
fastForwardButton = createButton(imageName: "forward.end", target: self, action: #selector(fastForwardAction))

fullscreenButton = createButton(imageName: "arrow.up.left.and.arrow.down.right", target: self, action: #selector(fullscreenAction))

let leftStack = NSStackView(views: [undoButton, redoButton, deleteButton])
leftStack.spacing = 9

let centerStack = NSStackView(views: [rewindButton, playPauseButton, fastForwardButton])
centerStack.spacing = 9

addSubview(leftStack)
addSubview(centerStack)
addSubview(fullscreenButton)

leftStack.translatesAutoresizingMaskIntoConstraints = false
centerStack.translatesAutoresizingMaskIntoConstraints = false
fullscreenButton.translatesAutoresizingMaskIntoConstraints = false

NSLayoutConstraint.activate([
leftStack.leadingAnchor.constraint(equalTo: leadingAnchor, constant: 20),
leftStack.topAnchor.constraint(equalTo: topAnchor, constant: 20),

centerStack.centerXAnchor.constraint(equalTo: centerXAnchor),
centerStack.topAnchor.constraint(equalTo: topAnchor, constant: 20),

fullscreenButton.trailingAnchor.constraint(equalTo: trailingAnchor, constant: -20),
fullscreenButton.topAnchor.constraint(equalTo: topAnchor, constant: 20)
])
}

private func createButton(imageName: String, target: Any?, action: Selector?) -> NSButton {
let button = NSButton(image: NSImage(systemSymbolName: imageName, accessibilityDescription: nil)!, target: target, action: action)
button.bezelStyle = .texturedRounded
button.isBordered = false
button.imageScaling = .scaleProportionallyDown
button.contentTintColor = .white

// Set button size to 30x30
button.translatesAutoresizingMaskIntoConstraints = false
NSLayoutConstraint.activate([
button.widthAnchor.constraint(equalToConstant: 30),
button.heightAnchor.constraint(equalToConstant: 30)
])

let config = NSImage.SymbolConfiguration(pointSize: 8, weight: .regular)
if let configuredImage = NSImage(systemSymbolName: imageName, accessibilityDescription: nil)?.withSymbolConfiguration(config) {
button.image = configuredImage
}

button.wantsLayer = true
button.layer?.cornerRadius = 15 // Half of 30 for perfect circle
button.layer?.borderWidth = 1
button.layer?.borderColor = NSColor(red: 0x88/255.0, green: 0x88/255.0, blue: 0x88/255.0, alpha: 0.5).cgColor

return button
}
Я попробовал поместить окончательный результат под изображением фигмы, и вот результат:-
сравнить


Подробнее здесь: https://stackoverflow.com/questions/798 ... ton-appkit
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «IOS»