我如何创建一个基本的UIButton编程?例如,在我的视图控制器中,当执行viewDidLoad方法时,将动态创建三个uibutton,并设置其布局或属性。
当前回答
-(UIButton *)addButton:(NSString *)title :(CGRect)frame : (SEL)selector :(UIImage *)image :(int)tag{
UIButton *btn = [UIButton buttonWithType:UIButtonTypeCustom];
btn.frame = frame;
[btn addTarget:self action:selector forControlEvents:UIControlEventTouchUpInside];
[btn setTitle:title forState:UIControlStateNormal];
[btn setImage:image forState:UIControlStateNormal];
btn.backgroundColor = [UIColor clearColor];
btn.tag = tag;
return btn;
}
你可以把它添加到视图中:
[self.view addSubview:[self addButton:nil :self.view.frame :@selector(btnAction:) :[UIImage imageNamed:@"img.png"] :1]];
其他回答
从Swift 3开始,语法有了一些变化。
以下是如何创建Swift 3的基本按钮:
let button = UIButton(type: UIButtonType.system) as UIButton
button.frame = CGRect(x: 100, y: 100, width: 100, height: 50)
button.backgroundColor = UIColor.green
button.setTitle("Example Button", for: UIControlState.normal)
self.view.addSubview(button)
以下是Swift自以前版本以来所做的更改:
let button = UIButton(type: UIButtonType.System) as UIButton
// system no longer capitalised
button.frame = CGRectMake(100, 100, 100, 50)
// CGRectMake has been removed as of Swift 3
button.backgroundColor = UIColor.greenColor()
// greenColor replaced with green
button.setTitle("Example Button", forState: UIControlState.Normal)
// normal is no longer capitalised
self.view.addSubview(button)
UIButton *btnname = [UIButton buttonWithType:UIButtonTypeRoundedRect];
[btnname setTitle:@"Click Me" forState:UIControlStateNormal];
btnname.frame = CGRectMake(10, 10, 100, 140);
[self.view addSubview:btnname];
Swift 3版本应该是:
let myButton:UIButton = {
let myButton = UIButton() // If you want to set the type use like
// UIButton(type: .RoundedRect) or
// UIButton(type: .Custom)
myButton.setTitle("Hai Touch Me", for: .normal)
myButton.setTitleColor(UIColor.blue, for: .normal)
myButton.frame = CGRect(x: 20, y: 20, width: 100, height: 40)
myButton.addTarget(self, action: #selector(ViewController.pressedAction(_:)), for: .touchUpInside)
self.view.addSubview(myButton)
return myButton
}()
UIButton *saveLibrary=[UIButton buttonWithType:UIButtonTypeCustom];
[saveLibrary setTitle:@"Library" forState:UIControlStateNormal];
[saveLibrary setBackgroundColor:[UIColor redColor]];
[saveLibrary addTarget:self
action:@selector(saveOnGalleryButtonIsPressed) forControlEvents:UIControlEventTouchUpInside];
[saveLibrary setImage:[UIImage imageWithContentsOfFile:[[[NSBundle mainBundle] bundlePath] stringByAppendingString:@"/library225.png"]]forState:UIControlStateNormal];
saveLibrary.frame=CGRectMake(323, 15, 75, 75);
[self.view addSubview:saveLibrary];
试试这个:
首先把它写在你的。h文件的viewcontroller
UIButton *btn;
现在把这个写在viewcontrollers viewDidLoad的。m文件中。
btn=[[UIButton alloc]initWithFrame:CGRectMake(50, 20, 30, 30)];
[btn setBackgroundColor:[UIColor orangeColor]];
[btn setTitle: @"My Button" forState:UIControlStateNormal];
[btn setTitleColor: [UIColor blueVolor] forState:UIControlStateNormal];
[btn.layer setBorderWidth:1.0f];
[btn.layer setBorderColor:[UIColor BlueVolor].CGColor];
//adding action programatically
[btn addTarget:self action:@selector(btnClicked:) forControlEvents:UIControlEventTouchUpInside];
[self.view addSubview:btn];
在视图控制器的。m文件中写入viewDidLoad方法的外部
- (IBAction)btnClicked:(id)sender
{
//Write a code you want to execute on buttons click event
}
推荐文章
- 如何删除默认的导航栏空间在SwiftUI导航视图
- 如何在iOS中使用Swift编程segue
- Swift -整数转换为小时/分钟/秒
- Swift:声明一个空字典
- 为什么ARC仍然需要@autoreleasepool ?
- 在成功提交我的应用程序后,“太多符号文件”
- 首先添加一个UIView,甚至是导航栏
- 我如何改变UIButton标题颜色?
- 如何从UIImage (Cocoa Touch)或CGImage (Core Graphics)获取像素数据?
- 在Swift中如何调用GCD主线程上的参数方法?
- NSLayoutConstraints是可动画的吗?
- iOS -构建失败,CocoaPods无法找到头文件
- Xcode 4挂在“附加到(应用程序名称)”
- CFNetwork SSLHandshake iOS 9失败
- 请求失败:不可接受的内容类型:文本/html使用AFNetworking 2.0