मैं अपने कस्टम व्यू में drawRect:
विधि UIView को ओवरराइड करने का प्रयास कर रहा हूं। हालांकि, मेरे विचार एक बॉर्डर की त्रिज्या के रूप में परिभाषित किया गया है:UIView ओवरराइडिंग drawRect कारण मास्क का पालन न करने का कारण बनता है ToBounds
sub = [[[NSBundle mainBundle] loadNibNamed:@"ProfileView" owner:self options:nil] objectAtIndex:0];
[self addSubview:sub];
[sub setUserInteractionEnabled:YES];
[self setUserInteractionEnabled:YES];
CALayer *layer = sub.layer;
layer.masksToBounds = YES;
layer.borderWidth = 5.0;
layer.borderColor = [UIColor whiteColor].CGColor;
layer.cornerRadius = 30.0;
यह पूरी तरह से काम करता है और मेरे विचार के चारों ओर एक बॉर्डर की त्रिज्या के साथ एक अच्छा सीमा देता है (पीछे विकर्ण/सीधे सफेद लाइनों कोई आपत्ति नहीं है, वे है कुछ भी नहीं इस दृश्य के साथ क्या करना):
हालांकि, जब मैं मेरे विचार में drawRect:
विधि ओवरराइड करने के लिए प्रयास करते हैं, मैं एक काले रंग की पृष्ठभूमि सीमा को मास्किंग नहीं देख सकता। मैं कुछ भी (वर्तमान में) नहीं करते हैं, यहां मेरे कोड है:
मैं लेकिन ड्रॉ विधि कुछ भी नहीं बदला है:
-(void)drawRect:(CGRect)rect{
[super drawRect:rect];
}
और यहाँ नतीजा है। मेरा विचार कोने त्रिज्या मुखौटा का पालन करते हुए मैं ड्रॉ विधि को ओवरराइड कैसे कर सकता हूं? क्या यह आईओएस में एक बग है या क्या मुझे कुछ याद आ रहा है?
यह सही उत्तर है। – Randy