malcommac / SwiftRichString

👩‍🎨 Elegant Attributed String composition in Swift sauce
MIT License
3.1k stars 211 forks source link

Image attachment's bounds takes a String instead of CGRect #129

Open aheze opened 3 years ago

aheze commented 3 years ago

The example in the README shows how to make an image, like this:

// You can specify the bounds of the image, both for size and the location respecting the base line of the text.
let localTextAndImage = AttributedString(image: UIImage(named: "rocket")!, bounds: CGRect(x: 0, y: -20, width: 25, height: 25))

But, when I try, it seems that bounds accepts a String?.

Screen Shot 2021-01-17 at 12 15 03 PM

Screen Shot 2021-01-17 at 12 17 30 PM

Shouldn't it take a CGRect?

CherryPick62 commented 2 years ago

The example in the README shows how to make an image, like this:

// You can specify the bounds of the image, both for size and the location respecting the base line of the text.
let localTextAndImage = AttributedString(image: UIImage(named: "rocket")!, bounds: CGRect(x: 0, y: -20, width: 25, height: 25))

But, when I try, it seems that bounds accepts a String?.

Screen Shot 2021-01-17 at 12 15 03 PM

Screen Shot 2021-01-17 at 12 17 30 PM

Shouldn't it take a CGRect?

Yes! you can use this function "class func cgRect(for string: String) -> CGRect" and "class func string(for: CGRect) -> String" A string whose contents are of the form “{{x,y},{w, h}}”, where x is the x coordinate, y is the y coordinate, w is the width, and h is the height. These components can represent integer or float values. An example of a valid string is @”{{3,2},{4,5}}”. The string is not localized, so items are always separated with a comma. https://developer.apple.com/documentation/foundation/nscoder/1624508-cgrect