проблема с изменением фонового изображения UIButton - PullRequest
0 голосов
/ 25 сентября 2011

У меня есть следующий код, который в основном просто инициализирует UIButton.

self.button = [[UIButton alloc] init];
    self.button.autoresizingMask = UIViewAutoresizingFlexibleRightMargin | UIViewAutoresizingFlexibleLeftMargin | UIViewAutoresizingFlexibleBottomMargin | UIViewAutoresizingFlexibleTopMargin;
    self.button.frame = CGRectMake(0.0, 0.0, buttonImage.size.width, buttonImage.size.height);
   [self.voteSpot setBackgroundImage:buttonImage forState:UIControlStateNormal];
[self.voteSpot setBackgroundImage:[UIImage imageNamed:@"MainButton-Selected.png"] forState:UIControlStateSelected];
    [self.button addTarget:self action:@selector(button) forControlEvents:UIControlEventTouchUpInside];

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

    [self.view addSubview:self.button];

Когда я нажимаю на кнопку, я хочу изменить фон кнопки, поэтому в цели у меня есть следующее:

- (void) button
{

    [self setSelectedViewController:[self.viewControllers objectAtIndex:1]];
    [self setTabBarWithImage:[UIImage imageNamed:@"Map-Profile.png"]];
}

Проблема в том, что при первой загрузке приложения я должен дважды нажать кнопку, чтобы изменить фоновый рисунок. Почему это происходит? при первом нажатии кнопки это не меняет фоновое изображение кнопки. Есть идеи?

Ответы [ 2 ]

0 голосов
/ 25 сентября 2011

Вы должны установить выделенный / выбранный фон, прежде чем пользователь сможет нажать кнопку. Другими словами, переместите первые две строки из метода действия туда, где вы создаете кнопку.

0 голосов
/ 25 сентября 2011

Я не уверен, в чем проблема, но я бы начал с создания кнопки, используя +buttonWithType вместо +alloc и -init. Свойство buttonType доступно только для чтения, и инициализация кнопки с помощью -init не позволяет установить тип.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...