2011-10-18 13 views
8

Tworzę aplikację na iPhone, w której mam przycisk niestandardowy. Ustawiłem tytuł przycisków, tworząc etykietę i dodając ją jako podgląd. teraz, gdy przycisk jest podświetlony, chcę zmienić kolor tekstu etykiety.Jak ustawić kolor tekstu etykiety etykiet dla stanu UIControlStateHighlighted

tutaj jest mój kod,

UIButton *button1= [UIButton buttonWithType:UIButtonTypeCustom]; 
    [button1 setFrame:CGRectMake(68,162, 635, 101)];  
    [button1 setImage:[UIImage imageNamed:@"startwithouttext.png"] forState:UIControlStateNormal]; 
    [button1 setImage:[UIImage imageNamed:@"startactivewithouttext.png"] forState:UIControlStateHighlighted]; 

    UILabel *buttonLabel = [[UILabel alloc] initWithFrame:CGRectMake(button1.bounds.origin.x+50, button1.bounds.origin.y+20, button1.bounds.size.width-100, button1.bounds.size.height-40)]; 

    [buttonLabel setFont:[UIFont fontWithName:@"Helvetica" size:28]]; 
    buttonLabel.backgroundColor=[UIColor clearColor]; 
    buttonLabel.textColor=[UIColor colorWithRed:83.0/255.0 green:83.0/255.0 blue:83.0/255.0 alpha:1.0]; 
    buttonLabel.highlightedTextColor=[UIColor whiteColor]; 
    buttonLabel.text = @"Long text string"; 
    [button1 addSubview:buttonLabel]; 
    [button1 bringSubviewToFront:buttonLabel]; 
    [button1 setContentVerticalAlignment:UIControlContentVerticalAlignmentCenter]; 
    [button1 setContentHorizontalAlignment:UIControlContentHorizontalAlignmentCenter]; 
    [button1 addTarget:self action:@selector(button1clicked:) forControlEvents: 

[mainView button1]; 

każdy organ może mi pomóc, aby zmienić kolor tekstu, gdy jest podświetlony przycisk?

+0

jest button1clicked nazywa? – Maulik

+0

yes button1 clicked nazywa się – krishan

+0

mogę zmienić kolor tekstu po wywołaniu metody klikniętej button1, ale chcę zmienić kolor tekstu kiedy przycisk jest podniesiony – krishan

Odpowiedz

10

można dodać cel dla UIControlStateHighlighted stanu UIButton jak

[button1 addTarget:self action:@selector(buttonHighlighted:) forControlEvents:UIControlStateHighlighted]; 

aw buttonHighlighted metodzie można zmienić kolor tekstu etykiety w

- (void) buttonHighlighted:(id)sender 
{ 
    //code here 
} 

nadzieję, że to daje wyobrażenie.

+0

ya, to dobrze .. dzięki za pomoc – krishan

+0

Dzięki za pomoc. – krishan

+0

dlaczego nie używasz etykiety tekstowej UIButton? dlaczego dodajesz inną etykietę na przycisku? – Maulik

23

znaleźć odpowiedź na inne pytanie na StackOverflow: UIButton color issues

[button1 setTitleColor:[UIColor redColor] forState:UIControlStateHighlighted]; 

To, czy można pracować bez tworzenia etykiety i dodanie go jako podrzędny jak wspomina powyżej.

+0

To zadziała tylko wtedy, gdy ustawisz oba kolory w innym stanie, lub kolor tekstu każdego stanu zmieni się na czerwony. – Raptor

1

Dla selectedColor

[yourButton setTitleColor:[UIColor purpleColor] forState:UIControlStateSelected]; 

Dla HighlightedColor

[yourButton setTitleColor:[UIColor orangeColor] forState:UIControlStateHighlighted]; 
Powiązane problemy