эффект touchUpInside для UIBarButtonItem - PullRequest
0 голосов
/ 11 февраля 2011

При нажатии left/rightBarButtonItem из UIBarButtonItem эффект touchUpInside не отображается. то есть цвет кнопки должен измениться. Нужно ли что-то реализовывать здесь?

Я не могу изменить цвет, когда кладу палец на кнопку правой панели. Я не вижу какого-либо свойства, называемого цветом фона, на UIBarButtonItem. Как этого добиться?

Ответы [ 2 ]

3 голосов
/ 11 февраля 2011

Вы не можете изменить цвет UIBarButtonItem, вам нужно установить Tint из UINavigationController, в котором кнопка включена.

Элемент UIBarButtonItem будет наследовать оттенок цвета NavBar. Вы также можете изменить UIBarButtonStyle на UIBarButtonSystemItemDone, чтобы сделать кнопку более темным цветом оттенка navBar.

Кроме того, UIBarButtonItem не имеет метода touchUpInside, вы можете переопределить его действие с помощью setAction:.

Вот некоторые из ваших вариантов для UIBarButtonItem:

UIBarButtonItem *backButton = [[UIBarButtonItem alloc] init];

    /* make the back button an image */
    [backButton setImage:[UIImage imageNamed:@"anImage.png"]];

    /* change the title for child views */
    [backButton setTitle:@"Go Back!"];

    /* tell the button to do something */
    [backButton setAction:@selector(doSomething:)];

    /* disable the button */
    [backButton setEnabled:NO];

    /* make this button the BACK button for nav controller */
    self.navigationItem.backBarButtonItem = backButton;

    /* create this button on the RIGHT side of the navBar */
    self.navigationItem.rightBarButtonItem = backButton;

[backButton release];
1 голос
/ 11 февраля 2011

UIBarButtonItem не использует touchUpInside, вместо этого у них есть только цель и действие, чтобы определить, когда они активируются.

...