【发布时间】:2020-10-03 11:22:19
【问题描述】:
我正在尝试使用 if 语句和 && 运算符检查多个 UIImageView != nil 是否存在,但问题是当用户选择 3 driverPImg.image != nil && passImg.image != nil && carImg.image != nil 的任何照片时,下一个代码会出现并且它不会检查休息条件
此图像显示 3 个水平排列的图像,在 Btn 将颜色变为红色之前,所有这些图像都应该被填充或不为零,但它假设发生的事情没有发生
extension VC: UINavigationControllerDelegate, UIImagePickerControllerDelegate {
func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [UIImagePickerController.InfoKey : Any]) {
if let editedImg = info[.editedImage] as? UIImage {
SelectedImg = editedImg.withRenderingMode(.alwaysOriginal)
} else if let originalImg = info[.originalImage] as? UIImage {
SelectedImg = originalImg.withRenderingMode(.alwaysOriginal)
}
if let image = SelectedImg {
if pictureSelectionType == .profilePicture {
driverPImg.image = image
}else if pictureSelectionType == .idPicture{
passImg.image = image
}else if pictureSelectionType == .vhiclePicture{
carImg.image = image
}else {
backCarImg.image = image
}
if driverPImg.image != nil && passImg.image != nil && carImg.image != nil{
sendApplyBtn.backgroundColor = UIColor.delevareColor
}else {
sendApplyBtn.backgroundColor = UIColor.lightGray
}
}
dismiss(animated: true, completion: nil)
}
func imagePickerControllerDidCancel(_ picker: UIImagePickerController) {
self.dismiss(animated: true, completion: nil)
}
}
【问题讨论】:
-
你能澄清你想要达到的目标吗?如果没有选择任何图像,或者任何一张图像为 nil,按钮是否应该为浅灰色?
-
不,同样的结果
-
该按钮只是用于检查条件,所以它已经是灰色的,在完成所有三个图像后,它应该变成红色,这是我想要做的,但我面临的是当一张图片不是
nil时,btn 会变为红色 -
那么你的逻辑是正确的。你确定其他图片是
nil吗?设置断点并使用调试器检查 -
如果您对选择类型使用
switch语句而不是一系列 if/else,您的代码可能会更清晰
标签: ios swift xcode if-statement uiimageview