ios - ग्रेडियंट और हाइलाइटिंग के साथ एक UIButton कैसे बनाएं?



objective-c cagradientlayer (1)

मैं एक ढाल पृष्ठभूमि के साथ UIButton बनाने का प्रयास कर रहा हूं। मुझे वह काम ठीक मिल गया है लेकिन बटन को हाइलाइट नहीं किया जाता है (डिफ़ॉल्ट व्यवहार बटन के लिए है, जब वह चुना हुआ होता है)।

यहां मेरा बटन है:

-(UIButton *)createLoginButtonForSize:(CGSize)size {
    UIButton *loginButton = [UIButton buttonWithType:UIButtonTypeCustom];
    loginButton.translatesAutoresizingMaskIntoConstraints = FALSE;
    loginButton.layer.cornerRadius = 8;
    loginButton.titleLabel.text = @"Login";

    [loginButton addTarget:self action:@selector(loginCheck:) forControlEvents:UIControlEventTouchUpInside];


    [loginButton addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"H:[loginButton(WIDTH)]"
                                                                        options:0
                                                                        metrics:@{@"WIDTH": [NSNumber numberWithFloat:size.width]}
                                                                          views:NSDictionaryOfVariableBindings(loginButton)]];

    [loginButton addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"V:[loginButton(HEIGHT)]"
                                                                        options:0
                                                                        metrics:@{@"HEIGHT": [NSNumber numberWithFloat:size.height]}
                                                                          views:NSDictionaryOfVariableBindings(loginButton)]];

    CAGradientLayer *layer = [UIColor greenGradient];
    layer.frame = CGRectMake(0, 0, size.width, size.height);
    layer.cornerRadius = 8;

    [loginButton.layer insertSublayer:layer atIndex:0];

    return loginButton;
}

क्या मुझे हाइलाइटिंग को संभालने की आवश्यकता है?


हां, आपको खुद को हाइलाइट करने के लिए संभालना होगा यद्यपि अपने खुद के कोड को रोल करने के बजाय, आपको जेफ लैमारके की जाँच करना चाहिए कि iPhone ग्रेडिएंट बटन प्रोजेक्ट का उपयोग करना बहुत आसान है। यह ठीक वही करता है जो आप करने की कोशिश कर रहे हैं। यह सिर्फ 2 फाइलें हैं, इसलिए आपके प्रोजेक्ट में शामिल करना आसान है:

http://code.google.com/p/iphonegradientbuttons/source/browse/trunk/Classes/GradientButton.h http://code.google.com/p/iphonegradientbuttons/source/browse/trunk/Classes/GradientButton.m

परियोजना के बारे में चर्चा करते हुए जेफ के ब्लॉग से लिया गया स्क्रीनशॉट नीचे दिया गया है।





cagradientlayer