2011-08-23 14 views
5

मुझे यकीन है कि यह किसी के लिए बाहर एक आसान है। मैं एक UISegmentedControl जो मैं एक बटन के रूप उपयोग कर रहा हूँ (इतनी के रूप में नहीं बुरा डिफ़ॉल्ट बटन का उपयोग करने के लिए) और मैं मुसीबत काम करने के लिए .... कोड के रूप मेंUISegmentedControl और लक्ष्य जोड़ना

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 
    // Do any additional setup after loading the view from its nib. 

    //read.buttonType = UIBarStyleBlackOpaque; 

    UISegmentedControl* read = [[[UISegmentedControl alloc] initWithFrame:CGRectMake(5, 50, 310, 54)] autorelease]; 
    [read insertSegmentWithTitle:@"Read" atIndex:0 animated:NO]; 
    read.tintColor = [UIColor colorWithRed:0.3 green:0.3 blue:0.9 alpha:1]; 
    read.segmentedControlStyle = UISegmentedControlStyleBar; 
    [read addTarget:self action:@selector(changeFilter:sender:) forControlEvents:UIControlEventTouchUpInside]; 
    [read setTag:1]; 
    [self.view addSubview:read]; 



} 

और उसके बाद इस प्रकार लक्ष्य हो रही हो रहा है है

-(void)changeFilter:(id)sender{ 

} 

किसी कारण से, UISegmentedControl पर क्लिक करने से लक्ष्य विधि नहीं आती है।

एक परिशिष्ट के रूप में, क्या अच्छा दिखने वाला UIButtons बनाने का एक आसान तरीका है? मेरे पास काम पर फ़ोटोशॉप तक पहुंच नहीं है (हालांकि मुझे जंप स्थापित है), इसलिए एक तरीका जिसमें छवि बनाने में शामिल नहीं है, वह अच्छा होगा। मुझे विश्वास नहीं है कि सेब ने UI में अच्छे दिखने वाले UIButtons की आपूर्ति नहीं की है, ऐसा लगता है कि यह आवश्यक मौलिक चीज़ है?

वैसे भी, मदद गलत एमिगोस के लिए धन्यवाद। जवाब के लिए

धन्यवाद ... मैं ठीक की कोशिश की है लेकिन यह अभी भी

आग नहीं करता है मैं अब

[read addTarget:self action:@selector(changeFilter:) forControlEvents:UIControlEventTouchUpInside]; 

तो

@interface 
-(void)changeFilter:(id)sender; 

और

है
@implementation 
-(void)changeFilter:(id)sender{} 

ध्यान दें कि विधि UISegmentedControl के समान कक्षा में है। हो सकता है कि मुझे सिर्फ ग्लास बटन एपीआई का उपयोग करने का प्रयास करना चाहिए, जिस पर सुझाव दिया गया था, लेकिन अगर मेरे पास से बचने का कोई तरीका है तो मेरा मालिक मुझे तीसरे पक्ष के पुस्तकालयों का उपयोग करके नफरत करता है!

उत्तर

8

चयनकर्ता गलत है। यह होना चाहिए, action:@selector(changeFilter:), और forControlEvents:UIControlEventValueChanged पर UISegmentedControlUIControlEventTouchUpInside ईवेंट के लिए कोई कार्रवाई नहीं भेजता है।

+0

मुझे लगता है कि किया है और इसके अभी भी फायरिंग – shaw2thefloor

+0

बदलें घटना भी नहीं। मेरे संपादित उत्तर की जांच करें। – EmptyStack

+0

आह, टिकट ... सभी उत्तरों के लिए थक्स। – shaw2thefloor

5

ज फ़ाइल यू इस

 -(void)changeFilter:(id)sender; 

डाल करने के लिए तो

change this 

[read addTarget:self action:@selector(changeFilter:sender:) forControlEvents:UIControlEventTouchUpInside]; 

To 

[read addTarget:self action:@selector(changeFilter:) forControlEvents:UIControlEventValueChanged]; 
1

कार्रवाई स्वचालित रूप से इस ताकि (changeFilter भेज देंगे बस @selector कोशिश :) भूल गया।

आपके दूसरे प्रश्न के लिए, आईओएस 5 आपकी मदद करेगा ... लेकिन मैं अभी तक इसके बारे में ज्यादा कुछ नहीं कह सकता। अभी के लिए, आप कुछ यूबूटन कक्षाओं का उपयोग कर सकते हैं जिन्हें लोगों ने आसानी से कुछ अच्छे दिखने वाले बटन बनाने के लिए बनाया है। यहाँ एक है:

http://hboon.com/glass-buttons-in-iphone-apps-without-using-image-files/

संबंधित मुद्दे