我可以使用'这个循环?

时间:2017-05-24 16:49:32

标签: swift loops for-loop

我想知道我是否可以使用'这个代码循环。请原谅我,我知道这是一个蹩脚的问题,但我是新手。伙计们,希望你能在这里帮助我!

非常感谢大家!

代码:

override func viewDidLoad() {
    super.viewDidLoad()

    // Background color

    let kolorTla = UIColor(red: 0/255.0, green: 66/255.0, blue: 132/255.0, alpha: 1.0)
    view.backgroundColor = kolorTla

    // Icons border

    ramka.layer.borderColor = UIColor(red: 255, green: 255, blue: 255, alpha: 1.0).cgColor
    ramka.layer.cornerRadius = 5.0
    ramka.layer.borderWidth = 3


    // Image

    skill1.image = UIImage(named: "english")

    // Image border

    skill1.layer.borderColor = UIColor(red: 255, green: 255, blue: 255, alpha: 1.0).cgColor
    skill1.layer.cornerRadius = 5.0
    skill1.layer.borderWidth = 3
    skill1.contentMode = .scaleAspectFit

    // Image

    skill2.image = UIImage(named: "literature")

    // Image border

    skill2.layer.borderColor = UIColor(red: 255, green: 255, blue: 255, alpha: 1.0).cgColor
    skill2.layer.cornerRadius = 5.0
    skill2.layer.borderWidth = 3
    skill2.contentMode = .scaleAspectFit

    // Image

    skill3.image = UIImage(named: "idea1")

    // Image border

    skill3.layer.borderColor = UIColor(red: 255, green: 255, blue: 255, alpha: 1.0).cgColor
    skill3.layer.cornerRadius = 5.0
    skill3.layer.borderWidth = 3
    skill3.contentMode = .scaleAspectFit

4 个答案:

答案 0 :(得分:1)

是的,你可以。将skill1,skill2和skill3放在一个数组中,然后像这样迭代它:

var objectArray = [skill1,skill2,skill3]


for object in objectArray
{
object.layer = ....


}

答案 1 :(得分:1)

你可以在某种程度上。您只需要定义一个项目数组并循环它们。不确定它是否能为您节省很多代码,但确实让它更容易理解。

override func viewDidLoad() {
    super.viewDidLoad()

    // Background color
    let kolorTla = UIColor(red: 0/255.0, green: 66/255.0, blue: 132/255.0, alpha: 1.0)
    view.backgroundColor = kolorTla

    // Icons border
    ramka.layer.borderColor = UIColor(red: 255, green: 255, blue: 255, alpha: 1.0).cgColor
    ramka.layer.cornerRadius = 5.0
    ramka.layer.borderWidth = 3

    // Set Image
    skill1.image = UIImage(named: "english")
    skill2.image = UIImage(named: "literature")
    skill3.image = UIImage(named: "idea1")

    // Set Image border
    for skill in [skill1, skill2, skill3] {
        skill.layer.borderColor = UIColor(red: 255, green: 255, blue: 255, alpha: 1.0).cgColor
        skill.layer.cornerRadius = 5.0
        skill.layer.borderWidth = 3
        skill.contentMode = .scaleAspectFit
    }
}

至少在我看来,更好的方法是创建一个简单的函数来代替处理它。

override func viewDidLoad() {
    super.viewDidLoad()

    // Background color
    let kolorTla = UIColor(red: 0/255.0, green: 66/255.0, blue: 132/255.0, alpha: 1.0)
    view.backgroundColor = kolorTla

    // Icons border
    ramka.layer.borderColor = UIColor(red: 255, green: 255, blue: 255, alpha: 1.0).cgColor
    ramka.layer.cornerRadius = 5.0
    ramka.layer.borderWidth = 3
    // Set Images
    setupImageView(imageView: skill1, imageName: "english")
    setupImageView(imageView: skill2, imageName: "literature")
    setupImageView(imageView: skill3, imageName: "idea1")
}

func setupImageView(imageView: UIImageView, imageName: String) {
    // Set Image
    imageView.image = UIImage(named: imageName)
    // Set Image border
    imageView.layer.borderColor = UIColor(red: 255, green: 255, blue: 255, alpha: 1.0).cgColor
    imageView.layer.cornerRadius = 5.0
    imageView.layer.borderWidth = 3
    imageView.contentMode = .scaleAspectFit
}

答案 2 :(得分:1)

虽然您无法使用1 abc inserted text above var1 2 def 3 ghi 4 jkl 5 mno inserted text below var2 6 pqr 7 stu 循环来修改变量名称并循环遍历它们,但您可以将for实例放在数组中并以此方式循环它们。

skill

答案 3 :(得分:0)

你可以扩展你的ImageView

extension UIImageView {
   func addCustomLayer() { // add arguments to function if you wish to change the value assigned 
         self.layer.borderColor = UIColor(red: 255, green: 255, blue: 255, alpha: 1.0).cgColor
        self.layer.cornerRadius = 5.0
        self.layer.borderWidth = 3
        self.contentMode = .scaleAspectFit
    }
   } 
}

然后在每个UIImageView上调用该方法

for each in [skill1, skill2, skill3] {
    each.addCustomLayer()
}