簡體   English   中英

子類化UIView / UIViewController

[英]Subclassing UIView/UIViewController

我的應用程序中需要很多自定義按鈕。 目前,我正在使用情節提要在我需要的每個控制器上定義這些按鈕。 但是,我覺得,由於我在整個應用程序中都需要它們,所以最好放一個將UIViewUIViewController子類化的視圖控制器/視圖,因此,如果我需要進行任何更改, 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];
 }

您的按鈕有可能偏離可見區域。 對於以編程方式添加按鈕,您的操作基本上是正確的。 此外,圖像應具有文件擴展名。 由於要添加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];
 }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM