CALayer ContentCenter не работает в Swift - PullRequest
0 голосов
/ 20 ноября 2018

Я хочу увеличить сенсорную область кнопки изображения, и когда я искал, я нашел способ использовать contentsCenter свойство CALayer.

https://developer.apple.com/documentation/quartzcore/calayer/1410740-contentscenter

В приведенном выше примере документа показано изображение, центрированное внутри слоя, которое можно изменять по мере изменения размера слоя, сохраняя соотношение, определенное в свойстве contentsCenter.

Но когда я использовал свойство contentsCenter, оно просто растягивает центр изображения - (0.5, 0.5).

Итак, я добавил свойство contentsGravity в .center, но это приводит к тому, что свойство contentsCenter не работает.

    button.frame = CGRect(x: 0, y: 0, width: 300, height: 300)
    button.center = view.center
    button.backgroundColor = .clear

    let image = UIImage(named: "profileImage")
    button.layer.contents = image?.cgImage
    button.layer.contentsCenter = CGRect(x: 0.25, y: 0.25, width: 0.5, height: 0.5)
    button.layer.contentsGravity = .center
    //button.layer.contentsScale = image?.scale

    button.layer.borderColor = UIColor.black.cgColor
    button.layer.borderWidth = 2
    button.layer.cornerRadius = 5
    button.layer.masksToBounds = true

Как сделать центр изображения внутри кнопкис соотношением поддерживающих вставок?

1 Ответ

0 голосов
/ 20 ноября 2018

Вы можете увеличить размер UIButton, используя приведенный ниже код

button.contentEdgeInsets = UIEdgeInsets(top: 10, left: 10, bottom: 10, right: 10)
...