Teraz opracowuję projekt, w którym muszę pokazać obrazek z kształtem jak poniżej.Zmiana domyślnego kształtu prostokąta kształtu UII
Jak mogę to zrobić? Nie mam pojęcia, jak to zrobić. Proszę każdy pomysł do rozwiązania.
Teraz opracowuję projekt, w którym muszę pokazać obrazek z kształtem jak poniżej.Zmiana domyślnego kształtu prostokąta kształtu UII
Jak mogę to zrobić? Nie mam pojęcia, jak to zrobić. Proszę każdy pomysł do rozwiązania.
Oto w jaki sposób można stworzyć ścieżkę do maskowania:
- (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;
}
Następnie można zastosować maskę kształt do obrazu:
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;
Może być to kod pomoże ...
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;
Czy jest to statyczny obraz lub rodzaj kontroli i trzeba przetwarzać zdarzenia dotykowe, gdy użytkownik dotknie obrazu? Czy tworzysz obraz w edytorze obrazów, czy chcesz programowo utworzyć obraz? – yurish
@yurish: obraz statyczny .. Obraz użytkownika pobrany z Internetu. Następnie pokaż zdjęcie w powyższym kroku. – Seeker
Zaakceptowałem poniższą odpowiedź, ale nie podam dokładnego kształtu, o którym wspomniałem powyżej ... – Seeker