For the inside if:
if APIClient.shared.whiteLabel == .gld_default || APIClient.shared.whiteLabel == .abc {
theImage.contentMode = .scaleAspectFill
} else {
theImage.contentMode = .scaleToFill
}
Gives:
theImage.contentMode = (APIClient.shared.whiteLabel == .gld_default || APIClient.shared.whiteLabel == .abc) ? . scaleAspectFill : . scaleToFill
Now, if we do the top level if:
theImage.contentMode = UIDevice.current.iPad ? insideIf : . scaleAspectFill
In full code:
theImage.contentMode = UIDevice.current.iPad ? (APIClient.shared.whiteLabel == .gld_default || APIClient.shared.whiteLabel == .abc) ? . scaleAspectFill
: . scaleToFill
: . scaleAspectFill
That's not really redable.
But
if UIDevice.current.iPad {
if APIClient.shared.whiteLabel == .gld_default || APIClient.shared.whiteLabel == .abc {
theImage.contentMode = .scaleAspectFill
} else {
theImage.contentMode = .scaleToFill
}
} else {
theImage.contentMode = .scaleAspectFill
}
Might be transformed into:
if UIDevice.current.iPad && !(APIClient.shared.whiteLabel == .gld_default || APIClient.shared.whiteLabel == .abc) {
theImage.contentMode = .scaleToFill
} else {
theImage.contentMode = .scaleAspectFill
}
That's shorter, but might be harder to read.
With ternary if:
theImage.contentMode = UIDevice.current.iPad && !(APIClient.shared.whiteLabel == .gld_default || APIClient.shared.whiteLabel == .abc) ? . scaleToFill : . scaleAspectFill
In my opinion? Keep your version (or maybe the version where I use only one if/else). Compiler will optimise nevertheless, and it's easier to fix/modify it two months later if you can grasp why and what it does quickly.
theImage.contentMode = (APIClient.shared.whiteLabel == .gld_default || APIClient.shared.whiteLabel == .abc) ? . scaleAspectFill : . scaleToFill