2011-10-18 6 views
8

मैं जिसमें मैं एक कस्टम बटन है एक iPhone आवेदन बनाने रहा हूँ। मैंने लेबल बनाने और इसे सबव्यूव के रूप में जोड़कर बटन शीर्षक सेट किया है। अब जब बटन हाइलाइट किया गया है तो मैं लेबल टेक्स्ट रंग बदलना चाहता हूं।राज्य के लिए बटन लेबल पाठ रंग सेट करने के लिए कैसे UIControlStateHighlighted

यहाँ मेरी कोड है,

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]; 

शरीर के किसी भी मदद कर सकते हैं मुझे पाठ रंग बदलने के लिए जब बटन हाइलाइट किया गया है?

+0

के लिए कहा जाता है button1clicked है? – Maulik

+0

हाँ button1clicked – krishan

+0

कहा जाता है मैं पाठ का रंग बदल सकते हैं जब button1clicked विधि कहा जाता है, लेकिन क्या मैं चाहता हूँ पाठ का रंग बदलने के लिए जब बटन – krishan

उत्तर

10

आप की तरह

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

UIButton की UIControlStateHighlighted राज्य के लिए लक्ष्य जोड़ सकते हैं और buttonHighlighted विधि में आप अपने लेबल के पाठ का रंग

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

आशा है कि यह आप एक विचार देता है बदल सकते हैं।

+0

या फिर बदलना चाहता हूं, ठीक है .. आपकी मदद के लिए धन्यवाद – krishan

+0

आपकी मदद के लिए धन्यवाद। – krishan

+0

आप यूआईबटन के टेक्स्ट लेबल का उपयोग क्यों नहीं करते? आप बटन पर एक और लेबल क्यों जोड़ रहे हैं? – Maulik

23

StackOverflow पर मिला एक अलग सवाल में जवाब: UIButton color issues

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

यह वह जगह है अगर आप एक लेबल बनाने और subview के रूप में जोड़ने के रूप में आप ऊपर उल्लेख के बिना काम कर सकते हैं।

+0

के लिए यूबूटन्स टेक्स्ट लेबल का उपयोग करने के लिए नमूना कोड पोस्ट कर सकते हैं यह केवल तभी काम करेगा जब आप अलग-अलग राज्यों में दोनों रंग सेट करते हैं, या प्रत्येक राज्य का टेक्स्ट रंग लाल हो जाएगा। – Raptor

1

SelectedColor

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

HighlightedColor

[yourButton setTitleColor:[UIColor orangeColor] forState:UIControlStateHighlighted]; 
संबंधित मुद्दे