Как установить масштаб фонового изображения метки, чтобы он поместился в Swift? - PullRequest
0 голосов
/ 24 июня 2018

У меня есть метка, которая используется для отображения некоторых сообщений. Я создал изображение, которое я хотел бы установить в качестве фона метки. Вот как я это сделал:

challengeCell.message.text = "    You have taken  \(historyArray[indexPath.row]) in this week"

challengeCell.message.backgroundColor = UIColor(patternImage: UIImage(named: "challengeMessage")!)

    //this is a suggested attempt 
    challengeCell.message.systemLayoutSizeFitting(UILayoutFittingCompressedSize)

Мне бы хотелось, чтобы фоновое изображение растягивалось и заполняло весь ярлык, а не дублировалось. Есть идеи, как мне это сделать?

screenshot

Ответы [ 2 ]

0 голосов
/ 24 июня 2018

Вы не можете использовать цвет рисунка для этого.Используйте UIImageView, чтобы показать фоновое изображение.Добавьте свойство в свой пользовательский класс ячеек для хранения ссылки на представление изображения:

class ChallengeCell: UITableViewCell {
    let messageBackgroundView = UIImageView()

    override func layoutSubviews() {
        if messageBackgroundView.superview != message.superview {
            message.superview.insertSubview(messageBackgroundView, belowSubview: message)
            messageBackgroundView.translatesAutoresizingMaskIntoConstraints = false
            NSLayoutConstraint.activate([
                messageBackgroundView.leadingAnchor.constraint(equalTo: message.leadingAnchor),
                messageBackgroundView.trailingAnchor.constraint(equalTo: message.trailingAnchor),
                messageBackgroundView.topAnchor.constraint(equalTo: message.topAnchor),
                messageBackgroundView.bottomAnchor.constraint(equalTo: message.bottomAnchor),
            ])
            messageBackgroundView.contentMode = .scaleToFill
        }

        super.layoutSubviews()
    }

    ...
}

Если вы хотите установить фон сообщения, установите изображение представления изображения:

challengeCell.messageBackgroundView.image = UIImage(named: "challengeMessage")
0 голосов
/ 24 июня 2018

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

challengeCell.message.systemLayoutSizeFitting(UILayoutFittingCompressedSize)
...