0

我的应用程序中需要很多自定义按钮。目前我正在使用情节提要在我需要的每个控制器上定义这些按钮。但是,我觉得因为我在整个应用程序中都需要它们,所以我最好放置一个不同的视图控制器/视图子类,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];
 }
4

1 回答 1

1

您的按钮有可能远离可见的矩形。对于以编程方式添加按钮,你做的大多是正确的。此外,图像应具有文件扩展名。由于您要添加自定义按钮,因此如果没有图像,那么您将看不到任何按钮。尝试为按钮添加标题,即使没有添加图像也会显示。

试试下面的代码。

-(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];
 }
于 2013-01-24T04:04:33.423 回答