- Data Structure
- Networking
- RDBMS
- Operating System
- Java
- MS Excel
- iOS
- HTML
- CSS
- Android
- Python
- C Programming
- C++
- C#
- MongoDB
- MySQL
- Javascript
- PHP
- Physics
- Chemistry
- Biology
- Mathematics
- English
- Economics
- Psychology
- Social Studies
- Fashion Studies
- Legal Studies
- Selected Reading
- UPSC IAS Exams Notes
- Developer's Best Practices
- Questions and Answers
- Effective Resume Writing
- HR Interview Questions
- Computer Glossary
- Who is Who
Changing the text of UIButton programmatically in Swift
To change the text of a UIButton in Swift, you can use the setTitle() method of the button. This method takes an argument to set the button title for a particular state. Generally, we used the normal button state.
We will change the text of the button programmatically by following the below steps −
Step 1 − In this step, we will create two buttons (login and T&C) and add basic customization.
Step 2 − In this step, we will change the text of the login button.
Step 3 − In this step, we will change the text of the terms and conditions button.
Example
In this example, we will create two buttons. The first one is to set normal text and another one is for attributed text. In this step, we will add and customize the buttons. After that, we will add constraints to both buttons. Here is the code.
import UIKit class TestController: UIViewController { private let loginButton = UIButton() private let termsConditionButton = UIButton() override func viewDidLoad() { super.viewDidLoad() initialSetup() } private func initialSetup() { // basic setup view.backgroundColor = .white navigationItem.title = "UIButton" // login button customization loginButton.backgroundColor = UIColor.gray loginButton.setTitleColor(.white, for: .normal) loginButton.layer.cornerRadius = 8 loginButton.clipsToBounds = true // terms and conditions button customization termsConditionButton.backgroundColor = UIColor.gray termsConditionButton.setTitleColor(.white, for: .normal) termsConditionButton.layer.cornerRadius = 8 termsConditionButton.clipsToBounds = true // adding the constraints to login button view.addSubview(loginButton) loginButton.translatesAutoresizingMaskIntoConstraints = false loginButton.centerYAnchor.constraint(equalTo: view.centerYAnchor).isActive = true loginButton.centerXAnchor.constraint(equalTo: view.centerXAnchor).isActive = true loginButton.heightAnchor.constraint(equalToConstant: 50).isActive = true loginButton.widthAnchor.constraint(equalToConstant: 280).isActive = true // adding the constraints to the terms & conditions button view.addSubview(termsConditionButton) termsConditionButton.translatesAutoresizingMaskIntoConstraints = false termsConditionButton.centerXAnchor.constraint(equalTo: view.centerXAnchor).isActive = true termsConditionButton.heightAnchor.constraint(equalToConstant: 50).isActive = true termsConditionButton.widthAnchor.constraint(equalToConstant: 280).isActive = true termsConditionButton.topAnchor.constraint(equalTo: loginButton.bottomAnchor, constant: 30).isActive = true } }
Output
In the above example, both buttons have been customized and added to the view by programmatic constraints. Now, we will set the text.
Change the text of the login button
In the below example, we will change the text using the setTitle() method. Here is an example.
Example
private func initialSetup() { // other statements setLoginButtonTitle() } private func setLoginButtonTitle() { loginButton.setTitle("Login", for: .normal) }
Output
In the above code, we set the text of the button by calling the setTitle() method. In this method, we pass the button state for which you want to set the text. This is because there are different states available in the button element. But mostly we deal with the normal state. The button is in the default state of the button in normal mode. In the case of a different state, the same method will be used to set the text.
Change the text of the terms and conditions button
In this example, we will set the attributed title to the button. Here is an example.
Example
private func initialSetup() { // other statements setConditionsButtonTitle() } private func setConditionsButtonTitle() { termsConditionButton.backgroundColor = .clear let attributes: [NSAttributedString.Key: Any] = [ .foregroundColor: UIColor.blue, .font: UIFont.systemFont(ofSize: 18, weight: .semibold), .underlineStyle: NSUnderlineStyle.single.rawValue ] let attributedText = NSAttributedString(string: "Terms & Conditions", attributes: attributes) termsConditionButton.setAttributedTitle(attributedText, for: .normal) }
Output
In the above code, we set the attributed title to the button. We applied the foreground color and underline style to the button.
Conclusion
In this article, you learned about the setTitle() method that sets the text and attributed text. The same method can be used to apply the text. You can set the title for different states using the same method.