Как добавить пробел между кнопками в uiscrollview - PullRequest
0 голосов
/ 11 сентября 2018

Я так старался добавить пробел между массивом кнопок в UIScrollView, но не смог этого сделать.Есть ли способ сделать пробел между массивом кнопок в UIScrollView?Я приложил картинку, объясняющую, чего я хочу.

enter image description here

Это мой код:

 //MARK: - SETUP CATEGORIES BUTTONS
func setupCategoriesButtons() {
    var xCoord: CGFloat = 1
    let yCoord: CGFloat = 1
    let buttonHeight: CGFloat = 40
    let buttonwidth: CGFloat = 40
    let gap: CGFloat = 0


    // Counter for items
    var itemCount = 0

    // Loop for creating buttons
    for i in 0..<myArray.count {
        itemCount = i

        // Create a Button
        let catButt = UIButton(type: .custom)


        catButt.showsTouchWhenHighlighted = true
        catButt.setTitle("\(myArray[itemCount])", for: .normal)
        catButt.sizeToFit()


        catButt.frame = CGRect(x: xCoord, y: yCoord, width: catButt.frame.size.width + 30, height: buttonHeight)

        catButt.layer.cornerRadius = 8

        catButt.titleLabel?.font = UIFont(name: "Titillium-Semibold", size: 12)
      //  catButt.addTarget(self, action: #selector(categoryButt(_:)), for: UIControlEvents.touchUpInside)

        // Add Buttons & Labels based on xCood
        xCoord +=  catButt.frame.size.width + gap
        categoriesScrollView.addSubview(catButt)
        letterButtons.append(catButt)
    } // END LOOP --------------------------

    for i in 0..<letterButtons.count {
        letterButtons[i].tag = i
        letterButtons[i].backgroundColor = RandomColor()
        letterButtons[i].setTitleColor(UIColor.white, for: .normal)
    }

    // Place Buttons into the ScrollView
    categoriesScrollView.contentSize = CGSize(width: buttonwidth * CGFloat(itemCount+1), height: yCoord)
}

Ответы [ 2 ]

0 голосов
/ 11 сентября 2018

Еще одно предложение:

Я бы предложил использовать UIStackView для достижения желаемого внешнего вида вместо добавления кнопок непосредственно в виде прокрутки. gap будет представлен как spacing свойство.

let stackView = UIStackView()
stackView.axis = .horizontal
stackView.distribution = .equalSpacing
// here is the "gap":
stackView.spacing   = 16.0

следовательно, вы должны добавить в него кнопки:

stackView.addArrangedSubview(button)
0 голосов
/ 11 сентября 2018
let gap: CGFloat = 0

Выглядит неправильно, если вы хотите разрыв.Не должно ли это быть, например, ... = 15?

Альтернативы могут включать размещение их в UIStackView с набором spacing.Это также было бы просто, используя автоматическое расположение, создавая ограничения между кнопками, которые обеспечивают промежутки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...