Hej,
mam taki problem. Chce zrobic screen z fragmentu ekranu przy uzyciu Swift 4 na maca. Na ekranie yswietlam region, ktory mozna przesuwać i zmienac jego rozmiar, aby dostosowac sobie obszar, ktory sie chce przechwycic.
Problem na jaki napotkałam, to to, ze w swift coordynaty 0.0 to lewy dolny róg. Natomiast na ekranie to lewy górny róg. W efekcie wszystkie moje screeny sa z nie tego obszaru z którego trzeba. Próbowałam się bawić trochę w konversje tych punktów niestety, nie działa to tak jakbym tego oczekiwała.
@objc func getScreenshotRect() {
var rect = transparentHoleView?.frame
print("Original hole is \(rect)")
rect = transparentHoleView?.superview?.convert(rect!, to: nil)
print("converted is \(rect)")
rect = transparentHoleView?.superview?.window?.convertToScreen(rect!)
print(" to screen converted is \(rect)")
let userInfo = [ "image" : ScreenService.sharedInstance.doRegionScreen(rect!) ]
NotificationCenter.default.post(name: .imageNotification, object: nil, userInfo: userInfo)
}
output :
Original hole is Optional((12.81640625, 2.13671875, 100.0, 200.0))
converted is Optional((12.81640625, 2.13671875, 100.0, 200.0))
to screen converted is Optional((12.81640625, 62.13671875, 100.0, 200.0))
Obrazek byl ustawiony w lewym dolnym rogu