ios - 如何根据条件将 UIStackView 中的按钮放置在其他按钮旁边?

标签 ios swift button stack

我有一个堆栈 View ,我在其中动态添加按钮。但我需要根据以下条件添加按钮:

if trim.contains("0"){
        print("contaim 0")
        let button1 = UIButton(frame: CGRect(x: 0, y: 0, width: 60, height: 20))
        button1.setTitleColor(UIColor.blackColor(), forState: .Normal)
        button1.setTitle("No", forState: .Normal)
        button1.setImage(UIImage(named: "checkbox untick.png")!, forState: .Normal)
        button1.addTarget(self, action: #selector(buttonAction), forControlEvents: .TouchUpInside)
        myStackview.addSubview(button1)
    }
    if trim.contains("1") {
        print("contaim 1")

        let button2 = UIButton(frame: CGRect(x: 90, y: 0, width: 60, height: 20))
            button2.setTitleColor(UIColor.blackColor(), forState: .Normal)
            button2.setTitle("Less", forState: .Normal)
            button2.setImage(UIImage(named: "checkbox untick.png")!, forState: .Normal)
            button2.addTarget(self, action: #selector(buttonAction), forControlEvents: .TouchUpInside)
            myStackview.addSubview(button2)


    }
    if trim.contains("2"){
        print("contaim 2")

        let button3 = UIButton(frame: CGRect(x: 150, y: 0, width: 60, height: 20))
        button3.setTitleColor(UIColor.blackColor(), forState: .Normal)

        button3.setTitle("Half", forState: .Normal)
        button3.setImage(UIImage(named: "checkbox untick.png")!, forState: .Normal)
        button3.addTarget(self, action: #selector(buttonAction), forControlEvents: .TouchUpInside)
        myStackview.addSubview(button3)
    }
    if trim.contains("3"){
        print("contaim 3")
        let button4 = UIButton(frame: CGRect(x: 210, y: 0, width: 60, height: 20))

        button4.setTitleColor(UIColor.blackColor(), forState: .Normal)

        button4.setTitle("On", forState: .Normal)
        button4.setImage(UIImage(named: "checkbox untick.png")!, forState: .Normal)
        button4.addTarget(self, action: #selector(buttonAction), forControlEvents: .TouchUpInside)
        myStackview.addSubview(button4)
    }
    if trim.contains("4"){
        print("contaim 4")
        let button5 = UIButton(frame: CGRect(x: 270, y: 0, width: 60, height: 20))

        button5.setTitleColor(UIColor.blackColor(), forState: .Normal)

        button5.setTitle("With", forState: .Normal)
        button5.setImage(UIImage(named: "checkbox untick.png")!, forState: .Normal)
        button5.addTarget(self, action: #selector(buttonAction), forControlEvents: .TouchUpInside)
        myStackview.addSubview(button5)
    }
    if trim.contains("5"){
        print("contaim 5")
        let button6 = UIButton(frame: CGRect(x: 310, y: 0, width: 60, height: 20))

        button6.setTitleColor(UIColor.blackColor(), forState: .Normal)

        button6.setTitle("On Burger", forState: .Normal)
        button6.setImage(UIImage(named: "checkbox untick.png")!, forState: .Normal)
        button6.addTarget(self, action: #selector(buttonAction), forControlEvents: .TouchUpInside)
        myStackview.addSubview(button6)
    }
    if trim.contains("6"){
        print("contaim 6")
        let button7 = UIButton(frame: CGRect(x: 370, y: 0, width: 60, height: 20))

        button7.setTitleColor(UIColor.blackColor(), forState: .Normal)

        button7.setTitle("On Chips", forState: .Normal)
        button7.setImage(UIImage(named: "checkbox untick.png")!, forState: .Normal)
        button7.addTarget(self, action: #selector(buttonAction), forControlEvents: .TouchUpInside)
        myStackview.addSubview(button7)
    }

我的按钮在这里添加,但在堆栈 View 中的给定位置。我的要求是,例如,如果按钮 1 条件不满足,那么第二个按钮应该出现在第一个按钮的位置??

按钮应该表现得像单选按钮

最佳答案

您可以使用此代码:

var posX = 0
var posY = 0
if trim.contains("0"){
print("contaim 0")
let button1 = UIButton(frame: CGRect(x: posX, y: posY, width: 60, height: 20))
button1.setTitleColor(UIColor.blackColor(), forState: .Normal)
button1.setTitle("No", forState: .Normal)
button1.setImage(UIImage(named: "checkbox untick.png")!, forState: .Normal)
button1.addTarget(self, action: #selector(buttonAction), forControlEvents: .TouchUpInside)
myStackview.addSubview(button1)
posX = 60
}
if trim.contains("1") {
print("contaim 1")

let button2 = UIButton(frame: CGRect(x: posX, y: posY, width: 60, height: 20))
button2.setTitleColor(UIColor.blackColor(), forState: .Normal)
button2.setTitle("Less", forState: .Normal)
button2.setImage(UIImage(named: "checkbox untick.png")!, forState: .Normal)
button2.addTarget(self, action: #selector(buttonAction), forControlEvents: .TouchUpInside)
myStackview.addSubview(button2)
posX =  posX + 60
}
if trim.contains("2"){
print("contaim 2")

let button3 = UIButton(frame: CGRect(x: posX, y: posY, width: 60, height: 20))
button3.setTitleColor(UIColor.blackColor(), forState: .Normal)

button3.setTitle("Half", forState: .Normal)
button3.setImage(UIImage(named: "checkbox untick.png")!, forState: .Normal)
button3.addTarget(self, action: #selector(buttonAction), forControlEvents: .TouchUpInside)
myStackview.addSubview(button3)
posX =  posX + 60
}
if trim.contains("3"){
print("contaim 3")
let button4 = UIButton(frame: CGRect(x: posX, y: posY, width: 60, height: 20))

button4.setTitleColor(UIColor.blackColor(), forState: .Normal)

button4.setTitle("On", forState: .Normal)
button4.setImage(UIImage(named: "checkbox untick.png")!, forState: .Normal)
button4.addTarget(self, action: #selector(buttonAction), forControlEvents: .TouchUpInside)
myStackview.addSubview(button4)
posX =  posX + 60
}
if trim.contains("4"){
print("contaim 4")
let button5 = UIButton(frame: CGRect(x: posX, y: posY, width: 60, height: 20))

button5.setTitleColor(UIColor.blackColor(), forState: .Normal)

button5.setTitle("With", forState: .Normal)
button5.setImage(UIImage(named: "checkbox untick.png")!, forState: .Normal)
button5.addTarget(self, action: #selector(buttonAction), forControlEvents: .TouchUpInside)
myStackview.addSubview(button5)
posX =  posX + 60
}
if trim.contains("5"){
print("contaim 5")
let button6 = UIButton(frame: CGRect(x: posX, y: posY, width: 60, height: 20))

button6.setTitleColor(UIColor.blackColor(), forState: .Normal)

button6.setTitle("On Burger", forState: .Normal)
button6.setImage(UIImage(named: "checkbox untick.png")!, forState: .Normal)
button6.addTarget(self, action: #selector(buttonAction), forControlEvents: .TouchUpInside)
myStackview.addSubview(button6)
posX =  posX + 60
}
if trim.contains("6"){
print("contaim 6")
let button7 = UIButton(frame: CGRect(x: posX, y: posY, width: 60, height: 20))

button7.setTitleColor(UIColor.blackColor(), forState: .Normal)

button7.setTitle("On Chips", forState: .Normal)
button7.setImage(UIImage(named: "checkbox untick.png")!, forState: .Normal)
button7.addTarget(self, action: #selector(buttonAction), forControlEvents: .TouchUpInside)
myStackview.addSubview(button7)
}

关于ios - 如何根据条件将 UIStackView 中的按钮放置在其他按钮旁边?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38738679/

相关文章:

ios - NSURL“URLByAppendingPathExtension:”错误?

ios - UILocalNotification 多次触发 swift

c# - 在 Unity 中使用 OnMouseDrag 在屏幕上拖动时如何禁用按钮 OnClick

ios - 如何检查我们的应用程序的通知警报样式?

ios - Flutter ios cloud_firestore 给出错误

ios - Ionic 中的透明导航栏

swift - 无法打开要在 YouTube tvOS 应用程序上播放的 YouTube URL

ios - 编译 Objective C++ 文件时找不到 'CrashlyticsDelegate' 的协议(protocol)声明

javascript - 如何通过点击输入按钮来触发函数

css - 如何在 webkit 浏览器上设置按钮(输入元素)的高度?