我的应用中需要很多自定义按钮。目前我正在使用故事板在我需要的每个控制器上定义这些按钮。但是,我觉得因为我需要在整个应用程序中使用它们,所以最好放入一个不同的视图控制器/视图子类UIView
或UIViewController
,所以如果我需要进行任何更改,我会必须做一次而不是在不同的视图控制器中。最好的方法是什么?你也可以告诉我如何以编程方式创建按钮?这就是我现在正在做的事情,而且我得到一个完全空白的屏幕。
-(void)viewDidAppear:(BOOL)animated
{
UIButton *testButton = [UIButton buttonWithType:UIButtonTypeCustom];
[testButton setFrame:CGRectMake(0, 390, 100, 40)];
[testButton setAutoresizingMask:UIViewAutoresizingFlexibleTopMargin];
[setImage:[UIImage imageNamed:@"test_button"] forState:UIControlStateNormal];
[setImage:[UIImage imageNamed:@"test_button"] forState:UIControlStateHighlighted];
[setEnabled:YES];
[self.view addSubview:testButton];
}
答案 0 :(得分:1)
您的按钮有可能远离可见的矩形。为了以编程方式添加按钮,您大部分都是正确的。此外,图像应具有文件扩展名。因为你要添加一个customButton,如果没有图像,那么你不会看到任何按钮。尝试为按钮添加标题,即使没有添加图像也会显示。
尝试以下代码。
-(void)viewDidAppear:(BOOL)animated {
[super viewDidAppear:animated]; //you must have a good reason to not add this line.
UIButton *testButton=[UIButton buttonWithType:UIButtonTypeCustom];
[testButton setFrame:CGRectMake(0, 20, 100, 40)];
[testButton setAutoresizingMask:UIViewAutoresizingFlexibleTopMargin];
[testButton setImage:[UIImage imageNamed:@"test_button.png"] forState:UIControlStateNormal];
[testButton setImage:[UIImage imageNamed:@"test_button.png"] forState:UIControlStateHighlighted];
[testButton setEnabled:YES];
[self.view addSubview:testButton];
}