Jetzt entwickle ich ein Projekt, in dem ich das Bild mit Rahmen wie unten Form zeigen muss.Ändern Sie die Standardform von UIImageview Form Rechteck
Wie kann ich das tun? Ich habe keine Ahnung, das zu tun. Bitte irgendeine Idee zu lösen.
Jetzt entwickle ich ein Projekt, in dem ich das Bild mit Rahmen wie unten Form zeigen muss.Ändern Sie die Standardform von UIImageview Form Rechteck
Wie kann ich das tun? Ich habe keine Ahnung, das zu tun. Bitte irgendeine Idee zu lösen.
Hier ist, wie Sie den Pfad für die Maskierung erstellen:
- (UIBezierPath *)curvedRectWithFrame:(CGRect)frame radius:(CGFloat)radius
{
double halfFrameHeight = ((double)frame.size.height/2);
// Check if the radius is too small.
if (radius < halfFrameHeight) {
radius = halfFrameHeight;
}
CGFloat arcAngle = asin(halfFrameHeight/radius);
CGFloat centerX = frame.origin.x + (frame.size.width - radius);
CGFloat centerY = frame.origin.y + halfFrameHeight;
UIBezierPath *path = [UIBezierPath bezierPath];
[path moveToPoint:frame.origin];
[path addLineToPoint:CGPointMake(centerX + radius * cos(arcAngle), frame.origin.y)];
[path addArcWithCenter:CGPointMake(centerX, centerY) radius:radius startAngle:-arcAngle endAngle:arcAngle clockwise:YES];
[path addLineToPoint:CGPointMake(frame.origin.x, path.currentPoint.y)];
[path closePath];
return path;
}
Dann können Sie die Form Maske auf Ihr Bild anwenden:
const CGFloat kCurveRadius = 500.;
CAShapeLayer *maskLayer = [[CAShapeLayer alloc] init];
maskLayer.frame = yourImageView.bounds;
maskLayer.path = [self curvedRectWithFrame:maskLayer.bounds radius:kCurveRadius].CGPath;
yourImageView.layer.mask = maskLayer;
Kann dieser Code wird Ihnen helfen, ...
UIBezierPath *maskPath;
maskPath = [UIBezierPath bezierPathWithRoundedRect:YourImageVIew.bounds byRoundingCorners:(UIRectCornerTopRight | UIRectCornerBottomRight) cornerRadii:CGSizeMake(50.0, 50.0)];
CAShapeLayer *maskLayer = [[CAShapeLayer alloc] init];
maskLayer.frame = YourImageVIew.bounds;
maskLayer.path = maskPath.CGPath;
YourImageVIew.layer.mask = maskLayer;
Ist es ein statisches Bild oder eine Art Steuerung und Sie müssen Berührungsereignisse verarbeiten, wenn der Benutzer das Bild berührt? Erstellen Sie das Bild in einem Bildbearbeitungsprogramm oder müssen Sie das Bild programmgesteuert erstellen? – yurish
@yurish: statisches Bild..Das Benutzerbild Download aus dem Internet .. Dann zeigen Sie das Bild in oben Schritt – Seeker
Ich habe die folgende Antwort akzeptiert, aber es wird nicht die genaue Form, die ich oben erwähnt ... – Seeker