Μπορείτε να χρησιμοποιήσετε πυρήνα γραφικών για να επιστήσει την κλίση, όπως επισημαίνεται στην απάντηση του Mike. Ως μια πιο λεπτομερή παράδειγμα, μπορείτε να δημιουργήσετε μια UIViewυποκατηγορία για να χρησιμοποιήσετε ως φόντο για σας UILabel. Σε αυτή την UIViewυποκατηγορία, υπερισχύει του drawRect:μέθοδο και εισαγωγή κωδικού παρόμοιο με το ακόλουθο:
- (void)drawRect:(CGRect)rect
{
CGContextRef currentContext = UIGraphicsGetCurrentContext();
CGGradientRef glossGradient;
CGColorSpaceRef rgbColorspace;
size_t num_locations = 2;
CGFloat locations[2] = { 0.0, 1.0 };
CGFloat components[8] = { 1.0, 1.0, 1.0, 0.35, // Start color
1.0, 1.0, 1.0, 0.06 }; // End color
rgbColorspace = CGColorSpaceCreateDeviceRGB();
glossGradient = CGGradientCreateWithColorComponents(rgbColorspace, components, locations, num_locations);
CGRect currentBounds = self.bounds;
CGPoint topCenter = CGPointMake(CGRectGetMidX(currentBounds), 0.0f);
CGPoint midCenter = CGPointMake(CGRectGetMidX(currentBounds), CGRectGetMidY(currentBounds));
CGContextDrawLinearGradient(currentContext, glossGradient, topCenter, midCenter, 0);
CGGradientRelease(glossGradient);
CGColorSpaceRelease(rgbColorspace);
}
Το συγκεκριμένο παράδειγμα δημιουργεί ένα λευκό, κλίση γυαλιστερό στυλ που προέρχεται από την κορυφή του UIViewστην κάθετη κέντρο της. Μπορείτε να ρυθμίσετε το UIView«s backgroundColorσε ό, τι σας αρέσει και αυτή η γυαλάδα θα κληρωθούν πάνω από αυτό το χρώμα. Μπορείτε, επίσης, να συντάξει ένα ακτινωτή κλίση χρησιμοποιώντας τη CGContextDrawRadialGradientλειτουργία.
Απλά πρέπει να το μέγεθος αυτό UIViewσωστά και να προσθέσετε σας UILabelως δευτερεύουσας προβολής του να πάρει το αποτέλεσμα που επιθυμείτε.
EDIT (23/4/2009): Ανά πρόταση St3fan, το έχω αντικαταστήσει πλαίσιο της προβολής με τα όρια της στον κώδικα. Αυτό διορθώνει για την περίπτωση κατά την προέλευση του άποψη δεν είναι (0,0).