के साथ uilabel मैं सोच रहा था कि मैं UILabel के लिए टेक्स्ट स्ट्रोक कैसे बना सकता हूं? क्या कोई संभावित तरीका है? आउटलाइन या स्ट्रोक
धन्यवाद,
#import <Foundation/Foundation.h>
@interface CustomLabel : UILabel {
}
@end
#import "CustomLabel.h"
@implementation CustomLabel
- (void)drawTextInRect:(CGRect)rect {
CGSize shadowOffset = self.shadowOffset;
UIColor *textColor = self.textColor;
CGContextRef c = UIGraphicsGetCurrentContext();
CGContextSetLineWidth(c, 22);
CGContextSetTextDrawingMode(c, kCGTextStroke);
self.textColor = [UIColor whiteColor];
[super drawTextInRect:rect];
CGContextSetTextDrawingMode(c, kCGTextFill);
self.textColor = textColor;
self.shadowOffset = CGSizeMake(0, 0);
[super drawTextInRect:rect];
self.shadowOffset = shadowOffset;
//works fine with no warning
}
अब सवाल यह है कि मैं कैसे अलग viewcontrollers पर एक IBOutlet लेबल के साथ इस उपवर्ग उपयोग कर सकते हैं। यह सही है:
CGContextSetLineJoin(c,kCGLineJoinRound);
बहुत बड़ी एक स्ट्रोक करने के लिए बहुत तेज एक चरित्र लागू किया की स्मृतियों को रोका जा सकता है:
label = [[CustomLabel alloc] initWithFrame:CGRectMake(0, 0, 190, 190)];
इंटरफ़ेस बिल्डर में 'लेबल' बनाने का प्रयास क्यों नहीं करते हैं और कनेक्शन बनाते हैं ताकि आपका ऐप कम से कम काम कर सके? – Lynn
धन्यवाद :) मैं उलझन में था: डी अब महान काम करता है – Momi
धन्यवाद! महान विचार! फिर भी इसे पैरामीट्रिज होना चाहिए, जैसे लाइन चौड़ाई, रंग इत्यादि। – Bogdan