I'm trying to add an image in UIImage format to SpritKit's SKSpriteNode.
When converting a UIImage into a texture to SKTexture and adding it to SKSpriteNode, the image that takes into account the orientation of the image held by the UIImage is not displayed on the screen.
I tried the code below, but the result is identical.
Code1:
let image: UIImage?
let texture: SKTexture = SKTexture(image: image!)
ver imageNode = SKSpriteNode(texture: texture)
Code2:
let image: UIImage?
let cgImage = image?.cgImage
let ciImage = CIImage(cgImage: cgImage!)
let orientedImage = UIImage(cgImage: CIContext(options: nil).createCGImage(ciImage, from: ciImage.extent)!, scale: 0, orientation: image!.imageOrientation)
let texture: SKTexture = SKTexture(image: orientedImage)
ver imageNode = SKSpriteNode(texture: texture)
Code3:
let image: UIImage?
guard let cgImage = image?.cgImage else { return }
let orientedImage = UIImage(cgImage: cgImage, scale: image!.scale, orientation: .up)
let texture = SKTexture(image: orientedImage)
ver imageNode = SKSpriteNode(texture: texture)
Is there a way to ensure that the image orientation is taken into account when displayed?
Post
Replies
Boosts
Views
Activity
The App Store Review Guidelines have been updated with the new addition of 2.5.18.
Updated agreements and guidelines now available
Added to 2.5.18: “Apps that contain ads must also include the ability for users to report any inappropriate or age-inappropriate ads.”
How is it best implemented?
Will the user report to the developer via the app, or will the system report directly to the ad serving company via the app?
Is it mandatory to attach a screenshot of the screen containing the ad in question?
Is it enough just to have a function to report by email to the developer?
Need the ability for users to report issues directly from the screen where the ad is displayed?
Getting an attribution from Apple Weather and accessing the Apple Weater trademark returns a 403 status.
https://weather-data.apple.com/assets/branding/combined-mark-light.png
Display of the Apple Weater trademark is a prerequisite for using Apple Weather.
I am concerned that when this situation occurs during the review of an app submitted to Apple, the review will be rejected.
Even if I start a request for SKProductsRequest, didReceiveResponse, didFailWithError, and requestDidFinish are not called.
The first request successfully called didReceiveResponse and requestDidFinish.
However, didReceiveResponse, didFailWithError, and requestDidFinish are not called in the second and subsequent requests.
About 12 hours after the second request, when I started the request again, didReceiveResponse and requestDidFinish was called normally.
However, when I started the request immediately afterwards, didReceiveResponse, didFailWithError, and requestDidFinish were no longer called again.
I kept the SKProductsRequest as a strong reference and executed the start of the request.
https://developer.apple.com/documentation/storekit/skproductsrequest
Objective-c Code:
//SKProductsRequest request
@property (strong, nonatomic) SKProductsRequest *request;
_request = [[SKProductsRequest alloc] initWithProductIdentifiers:[NSSet setWithArray:_productIdentifiers]];
_request.delegate = self;
[_request start];
- (void)productsRequest:(SKProductsRequest *)request didReceiveResponse:(SKProductsResponse *)response
{
}
- (void)requestDidFinish:(SKRequest *)request
{
}
- (void)request:(SKRequest *)request didFailWithError:(NSError *)error
{
}
- (void)paymentQueue:(SKPaymentQueue *)queue updatedTransactions:(NSArray *)transactions
{
}
The following log is displayed in the console log of Xcode.
[BackgroundTask] Background Task 8 ("SKProductsRequest"), was created over 30 seconds ago. In applications running in the background, this creates a risk of termination. Remember to call UIApplication.endBackgroundTask(_:) for your task in a timely manner to avoid this.
This phenomenon occurred in the following operating environment.
Xcode 13.0
iPhone 11 Pro / iOS 15.0
Deploy target iOS 13.0
SAND-BOX
This phenomenon did not occur in the following operating environment.
Xcode 12.5.1
iPhone 11 Pro / iOS 14.5
Deploy target iOS 12.3
SAND-BOX
This method is called after all processing of the request has been completed. Typically, subclasses of SKRequest require the delegate to implement additional methods to receive the response. When this method is called, your delegate receives no further communication from the request and can release it.
https://developer.apple.com/documentation/storekit/skrequestdelegate/1385532-requestdidfinish
The documentation states that the request can be released after the delegate is called. What does that mean?
Is this the phenomenon that the next request is not processed until the unreleased request expires?