SwiftRichString icon indicating copy to clipboard operation
SwiftRichString copied to clipboard

Image attachment's bounds takes a String instead of CGRect

Open aheze opened this issue 4 years ago • 1 comments

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?

aheze avatar Jan 17 '21 20:01 aheze

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

CherryPick62 avatar Apr 07 '22 05:04 CherryPick62