Вопрос про UIButton и UITabBar - PullRequest
       3

Вопрос про UIButton и UITabBar

0 голосов
/ 25 июля 2011

Я пытаюсь разместить UIB-кнопку с изображением над моим UITabBar.

Я добавил этот код в метод applicationDidFinishLaunching, но получаю некоторые ошибки, когда tabBar не распознается.

Я собрал TabBarController и NavController в IB.

UIButton* button = [UIButton buttonWithType:UIButtonTypeCustom];
UIImage *buttonImage = [UIImage imageNamed:@"addTabButton.png"];
UIImage *highlightImage = [UIImage imageNamed:@"addTabButtonHighlight.png"];
button.frame = CGRectMake(0.0, 0.0, buttonImage.size.width, buttonImage.size.height);
[button setBackgroundImage:buttonImage forState:UIControlStateNormal];
[button setBackgroundImage:highlightImage forState:UIControlStateHighlighted];

CGFloat heightDifference = buttonImage.size.height - self.tabBar.frame.size.height;
if (heightDifference < 0)
    button.center = self.tabBar.center;
else
{
    CGPoint center = self.tabBar.center;
    center.y = center.y - heightDifference/2.0;
    button.center = center;
}
[self.view addSubview:button];

Редактировать:

UIButton* button = [UIButton buttonWithType:UIButtonTypeCustom];
UIImage *buttonImage = [UIImage imageNamed:@"addTabButton.png"];
UIImage *highlightImage = [UIImage imageNamed:@"addTabButtonHighlight.png"];
button.frame = CGRectMake(0.0, 0.0, buttonImage.size.width, buttonImage.size.height);
[button setBackgroundImage:buttonImage forState:UIControlStateNormal];
[button setBackgroundImage:highlightImage forState:UIControlStateHighlighted];
[button addTarget:self action:@selector(btnTouchUpInside:) forControlEvents:UIControlEventTouchUpInside]; 
[self.window addSubview:button];

Ответы [ 3 ]

0 голосов
/ 25 июля 2011

applicationDidFinishLaunching - неподходящее место для размещения такого метода.Вместо этого используйте viewDidLoad или viewWillAppear.

0 голосов
/ 25 июля 2011

Кажется, что вы следуете этому сообщению в блоге http://idevrecipes.com/2010/12/16/raised-center-tab-bar-button/, чтобы создать пользовательский TabBar, но вы не следуете ему должным образом. Что вы делаете, это добавляете кнопку в качестве подпредставления к обычному представлению viewController, в то время как вам нужно добавить кнопку в представление TabBar. Попробуйте добавить кнопку, когда ваш tabBarContoller будет отображаться. Например, если вы удаляете View контроллера навигации из mainWindow и добавляете туда представление tabBarController, то перед добавлением представления tabBarController в окно добавьте кнопку в tabBar.view tabBarController, чтобы ваш код выглядел следующим образом

[tabBarController.tabBar.view addSubview:yourButton]; 
[window addSubView:tabBarController.view];

Попробуйте и дайте мне знать, что вы получили .....

0 голосов
/ 25 июля 2011

Можете ли вы опубликовать свой код торговых точек и свойств в файле .h?Возможно ли, что вы сделали их в своем главном ViewController?* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * Это метод appDelegate.

...