我如何以编程方式创建图形元素(如UIButton)在Swift?我试图创建和添加按钮到一个视图,但不能。
当前回答
将此代码添加到viewDidLoad中 / /添加按钮
var button=UIButton(frame: CGRectMake(150, 240, 75, 30))
button.setTitle("Next", forState: UIControlState.Normal)
button.addTarget(self, action: "buttonTapAction:", forControlEvents: UIControlEvents.TouchUpInside)
button.backgroundColor = UIColor.greenColor()
self.view.addSubview(button)
将这个函数写在它的外面,当你点击按钮时,这个函数将被调用
func buttonTapAction(sender:UIButton!)
{
println("Button is working")
}
其他回答
将此代码添加到viewDidLoad中 / /添加按钮
var button=UIButton(frame: CGRectMake(150, 240, 75, 30))
button.setTitle("Next", forState: UIControlState.Normal)
button.addTarget(self, action: "buttonTapAction:", forControlEvents: UIControlEvents.TouchUpInside)
button.backgroundColor = UIColor.greenColor()
self.view.addSubview(button)
将这个函数写在它的外面,当你点击按钮时,这个函数将被调用
func buttonTapAction(sender:UIButton!)
{
println("Button is working")
}
这是可能的。除了使用swift语法之外,您几乎可以以相同的方式完成所有操作。例如,你可以用这样的代码创建一个UIButton:
var button: UIButton = UIButton(frame: CGRectMake(0, 0, 100, 100))
Swift:以编程方式创建Ui按钮
let myButton = UIButton()
myButton.titleLabel!.frame = CGRectMake(15, 54, 300, 500)
myButton.titleLabel!.text = "Button Label"
myButton.titleLabel!.textColor = UIColor.redColor()
myButton.titleLabel!.textAlignment = .Center
self.view.addSubview(myButton)
var sampleButton:UIButton?
override func viewDidLoad() {
super.viewDidLoad()
}
override func viewDidAppear(animated: Bool) {
sampleButton = UIButton(type: .RoundedRect)
//sampleButton.frame = CGRect(x:50, y:500, width:70, height:50)
sampleButton!.setTitle("Sample \n UI Button", forState: .Normal)
sampleButton!.titleLabel?.lineBreakMode = .ByWordWrapping
sampleButton!.titleLabel?.textAlignment = .Center
sampleButton!.setTitleColor(UIColor.whiteColor(), forState: .Normal)
sampleButton!.layer.cornerRadius = 6
sampleButton!.backgroundColor = UIColor.redColor().colorWithAlphaComponent(0.6)
sampleButton?.tintColor = UIColor.brownColor()
//Add padding around text
sampleButton!.titleEdgeInsets = UIEdgeInsetsMake(-10,-10,-10,-10)
sampleButton!.contentEdgeInsets = UIEdgeInsetsMake(5,5,5,5)
//Action set up
sampleButton!.addTarget(self, action: "sampleButtonClicked", forControlEvents: .TouchUpInside)
self.view.addSubview(sampleButton!)
//Button Constraints:
sampleButton!.translatesAutoresizingMaskIntoConstraints = false
//To anchor above the tab bar on the bottom of the screen:
let bottomButtonConstraint = sampleButton!.bottomAnchor.constraintEqualToAnchor(bottomLayoutGuide.topAnchor, constant: -20)
//edge of the screen in InterfaceBuilder:
let margins = view.layoutMarginsGuide
let leadingButtonConstraint = sampleButton!.leadingAnchor.constraintEqualToAnchor(margins.leadingAnchor)
bottomButtonConstraint.active = true
leadingButtonConstraint.active = true
}
func sampleButtonClicked(){
print("sample Button Clicked")
}
步骤1:创建一个新项目
步骤2:在ViewController.swift中
import UIKit
class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
// CODE
let btn = UIButton(type: UIButtonType.System) as UIButton
btn.backgroundColor = UIColor.blueColor()
btn.setTitle("CALL TPT AGENT", forState: UIControlState.Normal)
btn.frame = CGRectMake(100, 100, 200, 100)
btn.addTarget(self, action: "clickMe:", forControlEvents: UIControlEvents.TouchUpInside)
self.view.addSubview(btn)
}
func clickMe(sender:UIButton!) {
print("CALL")
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
}
推荐文章
- 我如何在我的iOS应用程序中每n分钟得到一个后台位置更新?
- 如何使用iOS创建GUID/UUID
- 禁用所呈现视图控制器的交互式撤销
- 在Swift中转换字符串为日期
- 点击按钮时如何打开手机设置?
- 如何使用UIVisualEffectView来模糊图像?
- 如何修复UITableView分隔符在iOS 7?
- 故事板中的自定义单元格行高设置没有响应
- 在Swift中使用自定义消息抛出错误/异常的最简单方法?
- 编译器错误:带有Objective-C选择器的方法与前面带有相同Objective-C选择器的声明冲突
- 如何在Swift中获得唯一的设备ID ?
- 如何在Swift中获得枚举值的名称?
- 复制文本到剪贴板与iOS
- 在Swift中根据字符串计算UILabel的大小
- 如何调用手势点击在UIView编程在迅速