Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
iOS更改在for循环中创建的UIButton中的颜色_Ios_Swift - Fatal编程技术网

iOS更改在for循环中创建的UIButton中的颜色

iOS更改在for循环中创建的UIButton中的颜色,ios,swift,Ios,Swift,这是我从for循环生成的scrollview中的按钮的工作代码。我如何访问每个按钮来更改它们的属性或颜色 @IBOutlet var scrollView: UIScrollView! var namesOfMuscless = ["ALL","|","CHEST","|","BACK","|","BICEPS","|","TRICEPS","|","DELTOIDS","|","TRAPS","|","ABS","|","OBLIQUES","|","QUADS","|","CALV

这是我从for循环生成的scrollview中的按钮的工作代码。我如何访问每个按钮来更改它们的属性或颜色

    @IBOutlet var scrollView: UIScrollView!

var namesOfMuscless = ["ALL","|","CHEST","|","BACK","|","BICEPS","|","TRICEPS","|","DELTOIDS","|","TRAPS","|","ABS","|","OBLIQUES","|","QUADS","|","CALVES","|","INNER THIGHS","|","HAMSTRING","|","GLUTES"]
var nameOfMusclesSizes = [Int]()
var nameOfMusclesSizesFinal = [Int]()
var addFinalSize = 0
var scrollerSize = 0
var pixelAdjustment = 9

override func viewDidLoad() {
    super.viewDidLoad()
    // Do any additional setup after loading the view, typically from a nib.
    //One letter 20px




    for sizeAdd in 0..<self.namesOfMuscless.count {
       nameOfMusclesSizes.append(namesOfMuscless[sizeAdd].characters.count)

    }

    for sizeAddFinal in 0..<self.namesOfMuscless.count {
        if(sizeAddFinal<1){
            nameOfMusclesSizesFinal.append(0)
        }else{

            for counter in 0..<self.nameOfMusclesSizesFinal.count {
            addFinalSize=nameOfMusclesSizesFinal[counter]
            scrollerSize=nameOfMusclesSizesFinal[counter]+13
            }

            nameOfMusclesSizesFinal.append(nameOfMusclesSizes[sizeAddFinal-1]+addFinalSize)
        }
        print(nameOfMusclesSizesFinal[sizeAddFinal])

    }

    scrollView.contentSize = CGSizeMake(CGFloat(scrollerSize*pixelAdjustment-50),200)
    scrollView.showsHorizontalScrollIndicator = true
    scrollView.indicatorStyle = .Default



    for index in 0..<self.namesOfMuscless.count {
        let frame1 = CGRect(x:(nameOfMusclesSizesFinal[index]*pixelAdjustment),y: 20, width:namesOfMuscless[index].characters.count*pixelAdjustment, height: 30 )
        let button = UIButton(frame: frame1)
        button.setTitle(namesOfMuscless[index], forState: .Normal)
        button.titleLabel!.font = UIFont(name: "HelveticaNeue", size: 12)
        button.backgroundColor = UIColor.blackColor()
        button.addTarget(namesOfMuscless[index], action: "buttonClick:", forControlEvents: .TouchUpInside)
        scrollView.addSubview(button)
    }
}

func buttonClick(sender:UIButton){
    if(sender.currentTitle=="|"){

    }else{
      print(sender.currentTitle)
    }
}
@IBOutlet var scrollView:UIScrollView!
var namesOfMuscless=[“全部”、“三头肌”、“胸肌”、“胸肌”、“腹肌”、“斜肌”、“背部”、“四头肌”、“肱二头肌”、“小腿”、“大腿内侧”、“大腿内侧”、“腿筋”、“臀肌”]
变量nameOfMusclesSizes=[Int]()
变量nameOfMusclesSizesFinal=[Int]()
var addFinalSize=0
var scrollrsize=0
var像素调整=9
重写func viewDidLoad(){
super.viewDidLoad()
//加载视图后,通常从nib执行任何其他设置。
//一个字母20px

对于0..中的sizeAdd,您可以给每个按钮一个标记,并将其设置为for循环的索引:

button.tag = index
然后将该按钮放入字典
[Int:UIButton]
中供以后使用

myButtons[index] = button
因此,您可以创建全局变量
var myButtons:[Int:UIButton]=[:]
,然后在for循环中添加以下行

button.tag = index
myButtons[index] = button
然后,您可以使用每个按钮的标记来访问它,
var buttonoEdit:UIButton=myButtons[tagToUse]

例如,您可以将每一块肌肉及其索引存储在一个列表中

var indexes: [String : Int] = [
    "ALL" : 0, "CHEST" : 1,
    "BACK" : 2, "BICEPS" : 3,
    "TRICEPS" : 4,"DELTOIDS" : 5,
    "TRAPS" : 6, "ABS" : 7,
    "OBLIQUES" : 8, "QUADS" : 9,
    "CALVES" : 10, "INNER THIGHS" : 11,
    "HAMSTRING" : 12, "GLUTES" : 13
]
然后根据存储在
索引中的索引从列表
myButtons
列表中获取按钮。例如,如果要获取ABS按钮,可以使用

var absIndex: Int = indexes["ABS"] ?? 0
var absButton: UIButton? = myButtons[absIndex]

@没问题!如果你想,你可以点击答案左边的复选标记