2010-04-24 154 views
0

我在我的UIButton代碼中使用了customview。與UIButton相關的問題

UIButton *button= [[UIButton buttonWithType:UIButtonTypeRoundedRect] retain]; 
[button addTarget:self action:@selector(checkedimage:) forControlEvents:UIControlEventTouchUpInside]; 

-(IBAction)checkedimage:(id)sender 
{ 
NSLog(@"checkedimage"); 

if(checkImage == NO) 
{ 
    newImage = [UIImage imageNamed:@"a.png"]; 
    checkImage=YES; 
} 
else if(checkImage==YES) 
{ 
    newImage = [UIImage imageNamed:@"b.png"]; 
    checkImage=NO; 
} 
} 

,但是當我在UIButton的點擊是不會行動checkedimage
爲什麼呢?

+0

你不會在視圖中添加按鈕,也沒有按鈕框架,所以設置所有這些東西.. – 2012-07-18 06:28:04

回答

0

您發佈的代碼沒有任何問題。

您是否已將此按鈕添加到視圖?使用界面生成器?

我跑了基於你送什麼這個測試代碼,所有工作得很好:

- (void)viewDidLoad { 
[super viewDidLoad]; 
UIButton *button= [[UIButton buttonWithType:UIButtonTypeRoundedRect] retain]; 
[button addTarget:self action:@selector(checkedimage:) forControlEvents:UIControlEventTouchUpInside]; 
button.frame = CGRectMake(100, 100, 120, 20); 
[self.view addSubview:button]; 
} 

-(IBAction)checkedimage:(id)sender { 
NSLog(@"checkedimage"); 
} 
1

您沒有設置正確,並沒有真正給了我們足夠的信息來幫助你。

你有沒有在你的代碼中的任何地方創建了IBOutlet的類型UIButtonbutton的名字?如果你已經完成了這項工作,那麼你是否將IB分配給正確的UIButton? 如果你已經這樣做了,那麼你真的不應該在代碼中聲明一個具有相同名字的新UIButton。它應該已經作爲當前課程中的一個屬性存在。

如果您還沒有完成上述任何操作,則需要將您新創建的按鈕添加到某個視圖中,以使其可見。

我建議你閱讀一些關於如何使用IB的基本教程。