iphone - आईओएस 6 के बाद बटन पृष्ठभूमि और ढाल परिवर्तन




uibutton ios6 (2)

जैसा कि आप मेरी टिप्पणी में देख सकते हैं कि समस्या UIGroupTableViewCellBackground वर्ग से आया है, मैं इसे छिपाता हूं मुझे लगता है कि यह एक "साफ" समाधान नहीं है, यदि आपके पास बेहतर है तो मैं इसके बारे में सुनना चाहता हूं :-)

यहां कोड है:

for(UIView* subView in btnCountry.subviews)
    if([subView isKindOfClass:NSClassFromString(@"UIGroupTableViewCellBackground")])
        [subView setHidden:YES];

एक ऐप के लिए मुझे ढाल और पृष्ठभूमि छवि से भरे UIButton बनाना था। जब तक मैं आईओएस 5.1 से ओएस को हाल ही में रिलीज़ आईओएस 6 में नवीनीकृत नहीं किया, तब तक सब कुछ ठीक काम किया।

सिम्युलेटर से दो स्क्रीनशॉट यहां दिए गए हैं:

खैर, पहला स्क्रीनशॉट दिखाता है कि मुझे क्या चाहिए (और किया), आप एक भूरे रंग की पृष्ठभूमि और भूरे रंग की मूढ़ देख सकते हैं।

नीचे एक ही बटन के साथ स्क्रीनशॉट है लेकिन आईओएस 6 के साथ चल रहा है। जैसा कि आप देख सकते हैं कि ढाल गायब हो गया है और UIButton के नीचे एक अजीब सफेद पट्टी दिखाई गई है।

मैंने देखा है कि यह एक बग या कुछ और है, लेकिन मुझे कुछ नहीं मिला है, शायद किसी को यहाँ एक ही समस्या का सामना करना पड़ा है? यहाँ ढाल के लिए मेरा कोड है

CAGradientLayer *gradient = [CAGradientLayer layer];
    gradient.frame = btnCountry.bounds;
    UIColor *colorTop = [UIColor colorWithRed:.992f green:.992f blue:.992f alpha:1];
    UIColor *colorBot = [UIColor colorWithRed:.788f green:.769f blue:.745f alpha:1];
    gradient.colors = [NSArray arrayWithObjects:(id)[colorTop CGColor], (id)[colorBot CGColor], nil];
    gradient.borderColor = [UIColor colorWithRed:.545f green:.506f blue:.459f alpha:1].CGColor;
    gradient.borderWidth = 1;

    gradient.masksToBounds = YES;
    gradient.cornerRadius = 11;
    [[btnCountry layer] insertSublayer:gradient atIndex:0];

सूचकांक स्थिति 1 पर परत डालने के लिए मेरे लिए काम करता है

संभवतः सबसे अच्छा समाधान आईओएस संस्करण की जांच करना है और उस पर निर्भर करता है, सूचकांक 0 या 1 पर डालें।





cagradientlayer