ios-snapshot-test-case icon indicating copy to clipboard operation
ios-snapshot-test-case copied to clipboard

iOS - forcing a UIView to have `userInterfaceStyle` produces strange snapshot results

Open georgegillams opened this issue 4 years ago • 1 comments

This seems to be an issue with XCTest/XCode as it happens even if I use native methods to convert a view to an image within a XCTest context, but I thought it would still be worth tracking here too, in case you have any ideas or workarounds.

Open radar bug: http://www.openradar.appspot.com/7404933

Essentially I have a test where I define two dynamic colours:

  • dynamicColor1 is green in dark mode, purple in light mode, and black in iOS < 13.0
  • dynamicColor2 is orange in dark mode, cyan in light mode, and black in iOS < 13.0

For the light mode snapshot, I simply take a screenshot of the UIView. For the dark mode snapshot, I create a new instance of the View, set userInterfaceStyle to dark and take a screenshot of the UIView

As you can see in the test snapshots, the dynamic text colour is being correctly applied when I force userInterfaceStyle on the UIView, while the dynamic background colour is not.

image

georgegillams avatar Mar 19 '20 15:03 georgegillams

Hey, did you figure out a fix??

mauriciomeirelles avatar Dec 18 '20 13:12 mauriciomeirelles