我是swift的新手。我已经创建了简单的登录界面。我有两个问题与loginviewController.swift一起发布
问题1#我不知道如何比较按钮中显示的两个图像。我使用了复选框.setImage(img,for:.normal)来比较侧面按钮中显示的图像,用于在已选中和未选中之间切换操作
DB::table('a')->join('b','b.id',DB::Raw("CAST(a.data->'$.id' AS UNSIGNED)"))->get();
问题2#我正在尝试高亮显示文本字段的底部边框。我正在编写用于突出显示两个文本字段的代码,但它只突出显示单个文本字段
let img = UIImage(named:"check box@1x.png")
let img2 = UIImage(named:"uncheck box.png")
@IBOutlet weak var checkbox: UIButton!
@IBAction func checkbox(_ sender: Any) {
if checkbox.setImage(img, for: .normal)
{
checkbox.setImage(img , for: .normal)
}
else{
checkbox.setImage(img2, for: .normal)
}
}
如何
- >将按钮中显示的图像与其他图像进行比较
- >高亮两个文本字段的底部边框。
您可以从此链接https://drive.google.com/file/d/1zjNUBXZ-9WL4DTglhMXIlN-TpaO5IXBz/view?usp=sharing
下载项目答案 0 :(得分:0)
要检查按钮中的图像,您可以使用button.currentImage == image
。在您的示例中,它将如下所示
@IBAction func checkbox(_ sender: Any) {
if checkbox.currentImage == img2 {
checkbox.setImage(img , for: .normal)
} else {
checkbox.setImage(img2, for: .normal)
}
}
只显示底部文字字段边框的高亮显示,因为您的示例password_input.layer.addSublayer(border)
中存在错误,您想在此处使用border1
。
func boaderSetting() {
let border = CALayer()
let width = CGFloat(1.0)
border.borderColor = UIColor.orange.cgColor
border.frame = CGRect(x: 0, y: username_input.frame.size.height - width, width: username_input.frame.size.width, height: username_input.frame.size.height)
border.borderWidth = width
username_input.layer.addSublayer(border)
username_input.layer.masksToBounds = true
///
let border1 = CALayer()
let width1 = CGFloat(1.0)
border1.borderColor = UIColor.orange.cgColor
border1.frame = CGRect(x: 0, y: password_input.frame.size.height - width1, width: password_input.frame.size.width, height: password_input.frame.size.height)
border1.borderWidth = width1
password_input.layer.addSublayer(border1)
password_input.layer.masksToBounds = true
}
答案 1 :(得分:0)
对于#1,您可以简单地为不同的状态设置图像。
button.setImage(UIImage(named: "imageForSelected"), for : .selected)
button.setImage(UIImage(named: "imageForNotSelected"), for : .normal)
然后在逻辑设置按钮状态的某个地方
button.setSelected(true)