@Nick H247 द्वारा उत्तर पर विस्तार करते हुए, मैंने एक ऐसे मुद्दे का अनुभव किया, जहां रोटेशन पर बटन के आकार बदलने पर सबसे पहले रेखांकित किया गया था; यह आपके बटन को फिर से सेट करने के लिए हल किया जा सकता है जैसे:
myButton.contentMode = UIViewContentModeRedraw;
यह बटन को बदलने के लिए मजबूर करता है जब सीमा बदल जाती है।
दूसरे, मूल कोड ने माना कि आपके पास बटन में केवल 1 पंक्ति का पाठ था (मेरा बटन रोटेशन पर 2 रेखाओं तक लपेटता है) और रेखांकित केवल पाठ की अंतिम पंक्ति पर दिखाई देता है। ड्राअर कोड को पहले बटन में लाइनों की संख्या की गणना करने के लिए संशोधित किया जा सकता है, फिर नीचे की बजाय हर लाइन पर एक रेखांकन डालते हैं, जैसे:
- (void) drawRect:(CGRect)rect {
CGRect textRect = self.titleLabel.frame;
// need to put the line at top of descenders (negative value)
CGFloat descender = self.titleLabel.font.descender;
CGContextRef contextRef = UIGraphicsGetCurrentContext();
// set to same colour as text
CGContextSetStrokeColorWithColor(contextRef, self.titleLabel.textColor.CGColor);
CGSize labelSize = [self.titleLabel.text sizeWithFont:self.titleLabel.font
constrainedToSize:self.titleLabel.frame.size
lineBreakMode:UILineBreakModeWordWrap];
CGSize labelSizeNoWrap = [self.titleLabel.text sizeWithFont:self.titleLabel.font forWidth:self.titleLabel.frame.size.width lineBreakMode:UILineBreakModeMiddleTruncation ];
int numberOfLines = abs(labelSize.height/labelSizeNoWrap.height);
for(int i = 1; i<=numberOfLines;i++) {
// Original code
// CGContextMoveToPoint(contextRef, textRect.origin.x, textRect.origin.y + textRect.size.height + descender + PADDING);
//
// CGContextAddLineToPoint(contextRef, textRect.origin.x + textRect.size.width, textRect.origin.y + textRect.size.height + descender);
CGContextMoveToPoint(contextRef, textRect.origin.x, textRect.origin.y + (labelSizeNoWrap.height*i) + descender + PADDING);
CGContextAddLineToPoint(contextRef, textRect.origin.x + textRect.size.width, textRect.origin.y + (labelSizeNoWrap.height*i) + descender);
CGContextClosePath(contextRef);
CGContextDrawPath(contextRef, kCGPathStroke);
}
}
उम्मीद है कि यह कोड किसी और की मदद करे!