解决文本字段和按钮图像问题的问题

时间:2018-03-21 09:25:27

标签: swift uibutton uitextfield

我是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

下载项目

2 个答案:

答案 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)