Создать и настроить один UIButton для нескольких данных

У меня есть массив контента следующим образом:

массив = [Имя1, Имя2, Имя3...]

и я хочу отобразить этот контент на ярлыке кнопки. Проблема в том, что будет хардкорно, если в моем массиве будет много элементов, и я не хочу создавать так много таких кнопок. Поэтому, пожалуйста, любой может помочь мне найти способ создания одного общего экземпляра кнопки для этих данных. Например, если в моем массиве 2 элемента, на экране отобразятся 2 кнопки и т. Д. Спасибо вам большое!

P / s: проблема решена с ответом @Janmenjaya, вот мой код, все еще немного застрял в позиции y.

func displayFileList() {
    for i in 0..<fileIdList.count {
        let yRef : CGFloat = 35
        let title = String(fileIdList.indexOf(i))
        let button = UIButton(frame: CGRect(x: 0, y: yRef * CGFloat(i), width: 919, height: 30))
        button.setTitle(title, forState: UIControlState.Normal)
        button.setTitleColor(UIColor.blackColor(), forState: UIControlState.Normal)
        button.backgroundColor = UIColor.yellowColor()
        button.layer.borderWidth = 1;
        button.layer.borderColor = UIColor.blackColor().CGColor
        self.fileButtonContainView.addSubview(button)
    }
}

1 ответ

Решение

Вы можете перебрать массив и программно создать кнопку с динамическим заголовком на основе содержимого массива.

Следуйте примеру кода

Пример кода:

    arrData = NSMutableArray();

    arrData.addObject("Test0");
    arrData.addObject("Test1");
    arrData.addObject("Test2");
    arrData.addObject("Test3");
    arrData.addObject("Test4");

    var yRef : CGFloat = 100

    for i in 0..<arrData.count{

        let title = arrData.objectAtIndex(i);

        let btn = UIButton(type: .Custom);
        btn.frame = CGRectMake(100, yRef, 100, 40);
        btn.setTitle(title as? String, forState: UIControlState.Normal)
        btn.backgroundColor = UIColor.grayColor();
        self.view.addSubview(btn);

        yRef += CGRectGetHeight(btn.frame) + 10;
    }

Выход:

Надеюсь, поможет

Удачного кодирования...

Другие вопросы по тегам