визуализировать две UILabels в CGContext без перекрытия - PullRequest
0 голосов
/ 30 октября 2018

Здравствуйте, я пытаюсь визуализировать две метки в одном CGContext, чтобы получить UIImage - один над другим. Однако код игнорирует происхождение CGRects. Кто-нибудь может указать мне правильное направление?

// frames with positions and bounds
let frame = CGRect(x: 0, y: 0, width: 64, height: 64)
let upperFrame = CGRect(x: 0, y: 0, width: 64, height: 40)
let lowerFrame = CGRect(x: 0, y: 40, width: 64, height: 24)

// settings of lower label
let lowerLabel = UILabel(frame: lowerFrame)
lowerLabel.textAlignment = .center
lowerLabel.backgroundColor = UIColor.init(red: 1.0, green: 1.0, blue: 1.0, alpha: 0.0)
lowerLabel.textColor = .black
lowerLabel.font = nameLabel.font.withSize(15.0)
lowerLabel.adjustsFontSizeToFitWidth = true
lowerLabel.minimumScaleFactor = 1.0/nameLabel.font.pointSize
lowerLabel.text = "Monatsende"

// settings of upper label
let upperLabel = UILabel(frame: upperFrame)
upperLabel.textAlignment = .center
upperLabel.backgroundColor = UIColor.init(red: 1.0, green: 1.0, blue: 1.0, alpha: 0.0)
upperLabel.textColor = .black
upperLabel.font = upperLabel.font.withSize(15.0)
upperLabel.adjustsFontSizeToFitWidth = true
upperLabel.minimumScaleFactor = 1.0/upperLabel.font.pointSize
upperLabel.text = "2500 €"

// draw alltogether
UIGraphicsBeginImageContext(frame.size)
if let currentContext = UIGraphicsGetCurrentContext() {
  lowerlabel.layer.render(in: currentContext)
  upperLabel.layer.render(in: currentContext)
  let image = UIGraphicsGetImageFromCurrentImageContext()
  return image
}

В результате обе метки перекрывают друг друга:

result

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

...