2013-02-12 114 views
0

在我的iPad應用程序中,我手動添加導航欄和工具欄。
我還通過編碼添加滾動視圖和圖像視圖。無法點擊工具欄上的欄按鈕?

我的問題是我可以看到導航欄和工具欄。
我可以點擊導航欄上的按鈕。
但是,我不能點擊工具欄上的酒吧按鈕。

我該怎麼辦?

這是我的代碼。

- (void)viewDidLoad 
{ 

[super loadView]; 
self.view.backgroundColor = [UIColor grayColor]; 

UIScrollView *ScrollView = [[UIScrollView alloc] initWithFrame:CGRectMake(0, 44, self.view.frame.size.width, self.view.frame.size.height)]; 
ScrollView.pagingEnabled = YES; 

NSInteger numberOfViews = 4; 
for (int i = 0; i < numberOfViews; i++) { 
    CGFloat xOrigin = i * self.view.frame.size.width; 

    // Create a UIImage to hold Info.png 
    UIImage *image1 = [UIImage imageNamed:@"Image-001.jpg"]; 
    UIImage *image2 = [UIImage imageNamed:@"Image-002.jpg"]; 
    UIImage *image3 = [UIImage imageNamed:@"Image-003.jpg"]; 
    UIImage *image4 = [UIImage imageNamed:@"Image-004.jpg"]; 

    NSArray *images = [[NSArray alloc] initWithObjects:image1,image2,image3,image4,nil]; 

    UIImageView *ImageView = [[UIImageView alloc] initWithFrame:CGRectMake(xOrigin, 0, self.view.frame.size.width, self.view.frame.size.height-88)]; 
    [ImageView setImage:[images objectAtIndex:i]]; 

    [ScrollView addSubview:ImageView]; 
} 

ScrollView.contentSize = CGSizeMake(self.view.frame.size.width * numberOfViews, self.view.frame.size.height); 
[self.view addSubview:ScrollView]; 
} 
+2

而不是您發佈的代碼,請顯示與工具欄相關的代碼。 – rmaddy 2013-02-12 05:09:31

+0

@rmaddy,我很抱歉我的不完整的問題,我手動添加工具欄。然後我手動在這個工具欄上添加三個按鈕。 (不是來自代碼)。我將這些按鈕與他們相關的視圖控制器相連接。如果我點擊按鈕A,它會連接到視圖控制器A.(我將它們與segue - 模式連接)。我可以看到我的工具欄,但我無法點擊它上面的按鈕。這是我的問題。我能解決它嗎? – 2013-02-12 05:28:01

+0

它看起來像您添加的滾動視圖涵蓋除視圖控制器視圖的頂部之外的所有視圖。滾動視圖位於工具欄的頂部。這將阻止任何點擊事件進入工具欄。如果您在Interface Builder中添加了工具欄和導航欄,爲什麼不在Interface Builder中添加滾動視圖?然後確保它不會與工具欄重疊。 – rmaddy 2013-02-12 05:31:54

回答

0

我不知道什麼是您確切的問題,因爲您顯示的代碼與UIToolBar無關。

但下面的代碼我加了兩個UIBarButtonflexSpace
您可以添加UIBarButton只要你想

UIToolbar *Toolbar = [[UIToolbar alloc] initWithFrame:CGRectMake(0, 0, 320, 44)]; 
    Toolbar = UIBarStyleBlackTranslucent; 
    [Toolbar sizeToFit]; 

    NSMutableArray *barItems = [[NSMutableArray alloc] init]; 
    UIBarButtonItem *flexSpace = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace target:self action:nil]; 
    [barItems addObject:flexSpace]; 
    [flexSpace release]; 

    UIBarButtonItem *btnCancel = [[UIBarButtonItem alloc] initWithTitle:@"Cancel" style:UIBarButtonItemStyleBordered target:self action:@selector(Cancel)]; 
    [barItems addObject:btnCancel]; 

    UIBarButtonItem *btnDone = [[UIBarButtonItem alloc] initWithTitle:@"Done" style:UIBarButtonItemStyleBordered target:self action:@selector(done)]; 
    [barItems addObject:btnDone]; 

    [Toolbar setItems:barItems animated:YES]; 

下面的方法調用在自己的情況下,上欄按鈕竊聽

-(void)Cancel 
{ 
    // Write Code for Cancel Method 
} 

-(void)done 
{ 
    // Write Code for Done Method 
} 

此代碼可能有幫助時。

謝謝:)

+0

我很抱歉我的不完整的問題,我手動添加工具欄。然後我手動在這個工具欄上添加三個按鈕。 (不是來自代碼)。我將這些按鈕與他們相關的視圖控制器相連接。如果我點擊按鈕A,它會連接到視圖控制器A.(我將它們與segue - 模式連接)。我可以看到我的工具欄,但我無法點擊它上面的按鈕。這是我的問題。我能解決它嗎? – 2013-02-12 05:25:42

0

謝謝大家。我可以解決我的問題。
我更改我的代碼。

UIScrollView *ScrollView = [[UIScrollView alloc] initWithFrame:CGRectMake(0, 44, self.view.frame.size.width, self.view.frame.size.height)]; 

對此。

UIScrollView *ScrollView = [[UIScrollView alloc] initWithFrame:CGRectMake(0, 44, self.view.frame.size.width, self.view.frame.size.height-88)]; 
+0

你不應該硬編碼'88'值。你應該得到導航欄和工具欄的實際高度。不要忘記設置滾動視圖的'autoresizingMask'。其他方面,如果視圖控制器的大小發生變化(例如當從/從風景旋轉時),滾動視圖的大小不會改變。 – rmaddy 2013-02-12 05:53:23

+0

@rmaddy,謝謝,你真的幫助我,我打算旋轉我的視圖方向。關於方向,你的指導路線對我來說非常重要,非常感謝你。 – 2013-02-12 05:58:30

相關問題