簡體   English   中英

更改UIButton背景圖像的問題

[英]issue with changing UIButton background image

我有以下代碼,它們基本上只是初始化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"]];
}

問題是,當應用程序最初首次加載時,我必須按兩次按鈕才能更改背景。.為什么呢? 第一次點擊按鈕不會改變按鈕背景圖像。 任何想法?

我不確定是什么問題,但首先要使用+buttonWithType而不是+alloc-init創建按鈕。 buttonType屬性是只讀的,並且使用-init初始化按鈕不允許您設置類型。

在用戶點擊按鈕之前,應設置突出顯示/選定的背景。 換句話說,將前兩行從action方法移動到創建按鈕的位置。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM