SORU
23 Kasım 2009, PAZARTESİ


Tutarak bir UİButton bir dokunuş sonra seçilen

Benim kullanıcı bir düğmeye basana sonra bu düğme ağ operasyonu gerçekleştiren süre boyunca itti kalmak istiyorum. Ağ işlemi tamamlandığında, düğmeyi varsayılan durumuna geri dönmek istiyorum.

Düğmeye bas sonra[UIButton setSelected:YES] (ağ op benim tamamlandıktan sonra -[UIButton setSelected:NO] gelen bir çağrı ile) aramayı denedim ama hiçbir işe yaramıyor. Eğer setHighlighted: ararsam aynı şey.

Arka plan görüntüsü ağ süresi için seçilen bir devlet op belirtmek için erkek çalışırım, ama bu bir hack gibi görünüyor. Daha iyi bir öneriniz var mı?

Benim kod şöyle görünür:

- (IBAction)checkInButtonPushed
{
    self.checkInButton.enabled = NO;
    self.checkInButton.selected = YES;
    self.checkInButton.highlighted = YES;
    [self.checkInActivityIndicatorView startAnimating];
    [CheckInOperation startWithPlace:self.place delegate:self];
}

- (void)checkInCompletedWithNewFeedItem:(FeedItem*)newFeedItem wasNewPlace:(BOOL)newPlace possibleError:(NSError*)error;
{
    [self.checkInActivityIndicatorView stopAnimating];
    self.checkInButton.enabled = YES;
    self.checkInButton.selected = NO;
    self.checkInButton.highlighted = NO;
}

CEVAP
23 Kasım 2009, PAZARTESİ


Nasıl farklı görüntüler UIControlStates düğmesini ayarı misin? UIControlStateHighlighted UIControlStateSelected için bir arka plan görüntüsü ayarlama misin?

UIImage *someImage = [UIImage imageNamed:@"SomeResource.png"];
[button setBackgroundImage:someImage forState:UIControlStateHighlighted];
[button setBackgroundImage:someImage forState:UIControlStateSelected];

Eğer düğmesini seçili duruma olay iniş yerine içine temas kurma iseniz, düğme aslında bunu da ayarlamak istersiniz vurgulanan seçili durumda olacaktır.

[button setBackgroundImage:someImage forState:(UIControlStateHighlighted|UIControlStateSelected)];

Düzenleme:

Yorum yaptığım konuşmada özetle ve kod adrese gönderildi...UIControl tam devlet için arka plan resimleri ayarlamak gerekir. Kod parçacığını göre, bu denetim, devlet ağ işlem süresi için seçilen vurgulanan devre dışı olacaktır. Bu yapmak gerekir anlamına gelir:

[button setBackgroundImage:someImage forState:(UIControlStateDisabled|UIControlStateHighlighted|UIControlStateSelected)];

highlighted = YES kaldırmak, o zaman buna ihtiyacın olacak:

[button setBackgroundImage:someImage forState:(UIControlStateDisabled|UIControlStateSelected)];

Anladın mı şimdi?

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Alfredo Garcia

    Alfredo Garc

    25 Mayıs 2007
  • Dogbert files

    Dogbert file

    12 Ocak 2012
  • Watcher3223

    Watcher3223

    15 Kasım 2007