पर काम नहीं करता है, मैंने अपने UIView के आस-पास एक बिंदीदार सीमा प्राप्त करने के लिए कुछ घंटे की कोशिश की है, लेकिन मुझे इसे प्रदर्शित नहीं किया गया है।
ScaleOverlay.hUIView सबक्लास में उपयोग किए गए CAShapeLayer
#import <UIKit/UIKit.h>
#import <QuartzCore/QuartzCore.h>
@interface ScaleOverlay : UIView <UIGestureRecognizerDelegate> {
CAShapeLayer *shapeLayer_;
}
@end
ScaleOverlay.m
- (id)initWithFrame:(CGRect)frame
{
self = [super initWithFrame:frame];
if (self) {
self.backgroundColor = [UIColor redColor];
self.alpha = 0;
//Round corners
[[self layer] setCornerRadius:8.f];
[[self layer] setMasksToBounds:YES];
//Border
shapeLayer_ = [[CAShapeLayer layer] retain];
CGMutablePathRef path = CGPathCreateMutable();
CGPathAddRect(path, NULL, frame);
shapeLayer_.path = path;
CGPathRelease(path);
shapeLayer_.backgroundColor = [[UIColor clearColor] CGColor];
shapeLayer_.frame = frame;
shapeLayer_.position = self.center;
[shapeLayer_ setValue:[NSNumber numberWithBool:NO] forKey:@"isCircle"];
shapeLayer_.fillColor = [[UIColor blueColor] CGColor];
shapeLayer_.strokeColor = [[UIColor blackColor] CGColor];
shapeLayer_.lineWidth = 4.;
shapeLayer_.lineDashPattern = [NSArray arrayWithObjects:[NSNumber numberWithInt:8], [NSNumber numberWithInt:8], nil];
shapeLayer_.lineCap = kCALineCapRound;
}
return self;
}
मैं अपने Superview में तैयार एक लाल रेक्ट नहीं बल्कि सीमा मिला है। आशा है कि यह काम करेगा, लेकिन यह नहीं करता है।
विश्वास नहीं कर सकता कि मैं '[self.layer addSublayer: shapeLayer _] भूल गया था, और इसके लिए दिनों की खोज – Seega
आप कुछ कारणों से बैकिंग परत के रूप में CAShapeLayer का उपयोग नहीं कर सकते। – openfrog
@openfrog मैं यह वही व्यवहार देख रहा हूं। बहुत अजीब ... – LucasTizma