2013-02-12 5 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

+0

@rmaddy, извините за мой неполный вопрос, я добавляю панель инструментов вручную. затем я добавляю три кнопки на этой панели инструментов также вручную. (Не из кода). И я подключаю эти кнопки к соответствующему контроллеру. Если я нажму кнопку A, он подключится к контроллеру A. (я соединяю их с segue-modal). Я вижу панель инструментов, но я не могу нажать на нее. Это моя проблема. Могу ли я решить эту проблему? –

+0

Похоже, что в списке прокрутки вы добавляете обложки, кроме самой верхней части представления контроллера вида. Вид прокрутки находится поверх панели инструментов. Это заблокирует любые события перехода из панели инструментов. Если вы добавили панель инструментов и навигационную панель в Interface Builder, почему бы и не добавить scrollview в Interface Builder? Затем убедитесь, что он не перекрывает панель инструментов. – rmaddy

ответ

0

Я не знаю, что это ваша точная проблема, потому что ваш код отображается не связан с UIToolBar.

Но следующий код i добавил два UIBarButton с flexSpace.
вы можете добавить 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 
} 

Этот код может полезно в вашем собственном случае.

Thanks :)

+0

Прошу прощения за мой неполный вопрос, я добавляю панель инструментов вручную. затем я добавляю три кнопки на этой панели инструментов также вручную. (Не из кода). И я подключаю эти кнопки к соответствующему контроллеру. Если я нажму кнопку A, он подключится к контроллеру A. (я соединяю их с segue-modal). Я вижу панель инструментов, но я не могу нажать на нее. Это моя проблема. Могу ли я решить эту проблему? –

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

+0

@rmaddy, спасибо вам. Вы действительно поможете мне. Я планирую повернуть свою ориентацию взгляда. о вашей ориентации. Для меня очень важна моя путевая линия. Большое вам спасибо. –

Смежные вопросы