Надеюсь, у вас все хорошо.

Пока мы говорим, я изучаю разработку под iOS. Первое приложение, которое я пытаюсь создать, - это калькулятор. Я начал создавать пользовательский интерфейс и создал кнопки. См. Код и снимок экрана приложения, работающего ниже.

    private func setupNumPad(){
    let buttonSize: CGFloat = view.frame.size.width/4
    
    let zeroButton = UIButton(frame: CGRect(x: 0, y: holder.frame.size.height-buttonSize, width: buttonSize*3, height: buttonSize))
    zeroButton.setTitle("0", for: .normal)
    holder.addSubview(zeroButton)
    
    for x in 0..<3{
        let buttonOnetoThree = UIButton(frame: CGRect(x: buttonSize * CGFloat(x), y: holder.frame.size.height-(buttonSize*2), width: buttonSize, height: buttonSize))
        buttonOnetoThree.setTitle("\(x+1)", for: .normal)
        holder.addSubview(buttonOnetoThree)
    }
    
    for x in 0..<3{
        let buttonFourtoSix = UIButton(frame: CGRect(x: buttonSize * CGFloat(x), y: holder.frame.size.height-(buttonSize*3), width: buttonSize, height: buttonSize))
        buttonFourtoSix.setTitle("\(x+4)", for: .normal)
        holder.addSubview(buttonFourtoSix)
    }
    
    for x in 0..<3{
        let buttonSeventoNine = UIButton(frame: CGRect(x: buttonSize * CGFloat(x), y: holder.frame.size.height-(buttonSize*4), width: buttonSize, height: buttonSize))
        buttonSeventoNine.setTitle("\(x+7)", for: .normal)
        holder.addSubview(buttonSeventoNine)
    }

Щелкните здесь, чтобы просмотреть изображение выполняемого кода

Однако мне бы очень хотелось, чтобы кто-нибудь объяснил или показал мне создание круглой кнопки. Допустим, фон круглой кнопки, который я хочу, должен быть белым. Любая помощь или руководство будут оценены.

** Я не использую SwiftUI **

0
Tanav Sharma 11 Сен 2021 в 04:41

2 ответа

Лучший ответ

Добро пожаловать в сообщество. Чтобы создать круглую кнопку, вам нужно будет изменить свойство layer.corderRadius ваших кнопок (Совет. То же самое касается любого UIView). Чтобы получился идеальный круг, вам нужно установить cornerRadius на половину (0,5) значения, которое вы установили для ширины или высоты. Взяв один из ваших for-loop в качестве примера, вам нужно будет внести следующие изменения:

for x in 0..<3{
        let buttonOnetoThree = UIButton(frame: CGRect(x: buttonSize * CGFloat(x), y: holder.frame.size.height-(buttonSize*2), width: buttonSize, height: buttonSize))
        buttonOnetoThree.setTitle("\(x+1)", for: .normal)
        // SETTING THE CORNER RADIUS TO MAKE A CIRCULAR BUTTON -----------------
        buttonOnetoThree.layer.cornerRadius = 0.5 * buttonSize // Setting corner radius to half of buttonSize
        buttonOnetoThree.clipsToBounds = true // This value makes sure that the view (Button) is within the frame defined
        holder.addSubview(buttonOnetoThree)
    }
0
Visal Rajapakse 11 Сен 2021 в 03:55
for x in 0..<3{
        let buttonOnetoThree = UIButton(frame: CGRect(x: buttonSize * CGFloat(x), y: holder.frame.size.height-(buttonSize*2), width: buttonSize, height: buttonSize))
        // make circle button
        buttonOnetoThree.layer.cornerRadius = buttonSize/2
        buttonOnetoThree.backgroundColor = .white
        buttonOnetoThree.setTitle("\(x+1)", for: .normal)
        holder.addSubview(buttonOnetoThree)
    }
1
Geo 11 Сен 2021 в 03:59