2009-12-03 11 views
5

विफल हो गई है, मैं यूआईसीएबल के साथ यूआईएलएबल में टेक्स्ट रंग की तुलना करने की कोशिश कर रहा हूं लेकिन परिणाम हमेशा झूठा है।यूआईसीएबल के साथ यूआईएलएबल में टेक्स्ट रंग की तुलना

निम्नलिखित कोड परिणाम पैदा करता है:

color equal 1, 0 

मैं दोनों ए और बी 1. के बराबर होने की उम्मीद वहाँ एक और तरीका यह तुलना करने के लिए है?

bool a,b; 

    UIColor *myColor1, *myColor2; 

    myColor1 = [UIColor redColor]; 
    mainViewController.timerLabel.textColor = [UIColor redColor]; 

    myColor2 = [UIColor colorWithCGColor:mainViewController.timerLabel.textColor.CGColor]; 


    a = [[UIColor redColor] isEqual:myColor1]; 
    b = [[UIColor redColor] isEqual:myColor2]; 

    NSLog(@"color equal %i, %i",a,b); 

उत्तर

11

यूआईसीओलर परिभाषित नहीं करता है, एक्सेल को एनएसओब्जेक्ट से विरासत में मिला है। इस प्रकार Isqual रंगों के पते की तुलना कर रहा है और असफल हो जाएगा।

CGColor *c = myColor.CGColor; 

फिर CGColor रंग तुलना की जा सकती:

bool colorsEqual = CGColorEqualToColor(myColor1.CGColor, myColor2.CGColor); 

या दो रंगों के अलग-अलग घटकों और फिर तुलना अलग-अलग
- (BOOL)getRed:(CGFloat *)red green:(CGFloat *)green blue:(CGFloat *)blue alpha:(CGFloat *)alpha का उपयोग कर

CGColor एक तुलना समारोह CGColorEqualToColor() है

+0

धन्यवाद जैफ, यह समझ में आता है। – Joe

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