2011-07-22 61 views
0

在下面的代碼中,我想顯示控制檯上每個按鈕的標籤。我爲此嘗試過,但顯示範圍之外。那是怎麼回事?如何顯示按鈕的標籤?

- (void)loadView { 
[super loadView]; 
self.view.backgroundColor = [UIColor redColor]; 
UIScrollView *scroll = [[UIScrollView alloc] initWithFrame:CGRectMake(0, 0, self.view.frame.size.width, self.view.frame.size.height)]; 
scroll.pagingEnabled = YES; 
NSInteger numberOfViews = 33; 
[btnMenu setTag:0 ]; 
for (int i = 1; i < numberOfViews; i++) { 
    CGFloat yOrigin = i * self.view.frame.size.width; 
    UIView *awesomeView = [[UIView alloc] initWithFrame:CGRectMake(yOrigin, 0, self.view.frame.size.width, self.view.frame.size.height)]; 
    //awesomeView.backgroundColor = [UIColor colorWithRed:0.5/i green:0.5 blue:0.5 alpha:1]; 
    btnMenu = [UIButton buttonWithType:UIButtonTypeCustom]; 
    //NSData *data =UIImageJPEGRepresentation(, 1); 
    [btnMenu setBackgroundImage:[UIImage imageNamed:[NSString stringWithFormat:@"page-%d.jpg",i]] forState:UIControlStateNormal]; 
    CGRect frame = btnMenu.frame; 
    frame.size.width=320; 
    frame.size.height=460; 
    frame.origin.x=0; 
    frame.origin.y=0; 
    btnMenu.frame=frame; 
    [btnMenu setTag:i]; 
    btnMenu.alpha = 1; 
    [btnMenu addTarget:self action:@selector(btnSelected:) forControlEvents:UIControlEventTouchUpInside]; 
    [awesomeView addSubview:btnMenu]; 

    [scroll addSubview:awesomeView]; 
    [awesomeView release]; 
} 
scroll.contentSize = CGSizeMake(self.view.frame.size.width * numberOfViews, self.view.frame.size.height); 
[self.view addSubview:scroll]; 
[scroll release]; 

}

-(IBAction)btnSelected:(id)sender{ 
switch (btnMenu.tag) { 
     NSLog(@"%d",btnMenu.tag); 

}} 

回答

3

試試這個:

-(IBAction)btnSelected:(id)sender{ 
    UIButton *button = (UIButton *)sender; 
    int whichButton = button.tag; 
    NSLog(@"Current TAG: %i", whichButton); 
} 

編輯:

你真正需要的方法爲IBAction爲方法?

難道你不能用它作爲無效的嗎?

-(void)btnSelected:(id)sender{ 
    UIButton *button = (UIButton *)sender; 
    int whichButton = button.tag; 
    NSLog(@"Current TAG: %i", whichButton); 
} 
+0

它給這個錯誤: - 請求成員'標記'的東西不是結構或聯合 – ram

+0

在這一行代碼:int whichButton = button.tag; ?? – meronix

+0

你能告訴我我可以爲圖像查看嗎?你能看到我的這個問題:http://stackoverflow.com/questions/6786170/how-add-a-uibutton-on-every-image-of-image-view-which-is-in-scroll-view – ram

1
-(IBAction)btnSelected:(id)sender{ 
    UIButton* btnMenu = (UIButton*)sender; 
    switch (btnMenu.tag) { 
    NSLog(@"%d",btnMenu.tag); 

    } 
} 
+0

它沒有響應。 – ram

+0

嘗試使用UIView而不是UIButton可能是將相同的標記設置爲兩個組件 –

0

試試這個代碼爲您的操作方法

-(IBAction)btnSelected:(id)sender{ 
switch (sender.tag) { 
    NSLog(@"%d",sender.tag); 

}}

這種打印所選擇的當前按鈕的標籤。

TNQ

+0

錯誤:請求成員'標記'的東西不是結構或聯合 – ram

+0

如果您只想打印當前按鈕的標記,您甚至可以刪除switch語句。只在操作方法中的日誌語句 – Dinakar

0

在創建您的按鈕在本地(在for循環中)創建它,否則將只包含最後一個標籤。

totalNoOfImages=32; 

爲:

for(int i=0;i<totalNoOfImages;i++) 
{ 
    UIButton *button=[[[UIButton alloc] initWithFrame:CGRectMake(i*50,0,45,44)] autorelease];  

    //SETTING TAG FOR IMAGE 
    [button setTag:i]; 
    [button addTarget:self action:@selector(btnSelected:)forControlEvents:UIControlEventTouchDown]; 
    [scrollView addSubview:iconImageSlide]; 
} 

下面的方法將顯示標籤:

- (void) btnSelected:(id)sender 
{ 
    int btnId=[(UIButton *)sender tag]; 
    NSLog(@"btnTag= %d", ibtnId) 
} 
0
-(IBAction)btnSelected:(id)sender{ 

UIButton *btnSelected = sender; 

NSLog(@"%d",btnSelected.tag); 
} 

上面的代碼工作對我來說,它是在日誌打印標籤值。你必須做錯事。

+0

我檢查它,然後我告訴和編輯我的代碼。感謝你的支持。 – ram

相關問題