Sẽ mất rất nhiều thời gian dùng thử và lỗi, tôi đã thực hiện điều này nhanh chóng chỉ để cung cấp cho bạn ý tưởng về cách tạo hình dạng bằng Đường dẫn Bezier. Dưới đây là mã ví dụ để tạo hình vuông mà tôi đã nhanh chóng tạo ra
UIBezierPath *aPath = [UIBezierPath bezierPath];
// Set the starting point of the shape.
[aPath moveToPoint:CGPointMake(50.0, 50.0)];
// Draw the lines.
[aPath addLineToPoint:CGPointMake(100.0, 50.0)];
[aPath addLineToPoint:CGPointMake(100.0, 100.0)];
[aPath addLineToPoint:CGPointMake(50.0, 100.0)];
[aPath closePath];
CAShapeLayer *square = [CAShapeLayer layer];
square.path = aPath.CGPath;
[self.view.layer addSublayer:square];
Nếu tôi có nhiều thời gian hơn, tôi có thể tạo hình ảnh, nhưng thực hiện nhanh như không có quá nhiều thời gian. Nó không quá khó để sử dụng một khi bạn nhận được vòng đầu của bạn như thế nào các điểm được thực hiện. Nó sẽ đưa bạn rất nhiều thử nghiệm và lỗi để tạo ra hình dạng này, nhưng sử dụng mã tôi cung cấp làm cơ sở cho cách tạo hình bằng cách sử dụng đường dẫn Bezier. Bạn sẽ cần phải tạo ra nhiều điểm hơn để kết thúc với hình dạng bạn có trong tâm trí.
Tôi cũng sẽ khuyên bạn nên nhìn phát triển Táo hướng dẫn để tạo hình dạng bất thường
http://developer.apple.com/library/ios/#documentation/2ddrawing/conceptual/drawingprintingios/BezierPaths/BezierPaths.html
Trong cái nhìn đặc biệt tại "Thêm Curves Path của bạn" để tìm hiểu làm thế nào để tạo ra đường cong và thêm chúng vào hình ảnh của bạn . Bạn sẽ cần phải có để tạo ra ghép mảnh ghép hình bạn đang cố gắng để tạo ra
EDIT:
Hãy thử phương pháp này
- (void) setClippingPath:(UIBezierPath *)clippingPath : (UIImageView *)imgView;
{
if (![[imgView layer] mask])
[[imgView layer] setMask:[CAShapeLayer layer]];
[(CAShapeLayer*) [[imgView layer] mask] setPath:[clippingPath CGPath]];
}
Các phương pháp trên sẽ mất một con đường Bút chì và một ImageView và sau đó áp dụng đường dẫn bezier cho imageView cụ thể đó. Nó cũng sẽ cắt. Sẽ mất rất nhiều thử và sai, tôi sẽ tưởng tượng để có được hình dạng vừa phải, có thể khó khăn và bực bội tạo ra hình dạng phức tạp đôi khi.
dụ nhanh của việc áp dụng mã này
UIBezierPath *aPath = [UIBezierPath bezierPath];
// Set the starting point of the shape.
[aPath moveToPoint:CGPointMake(0.0, 0.0)];
// Draw the lines.
[aPath addLineToPoint:CGPointMake(50.0, 0.0)];
[aPath addLineToPoint:CGPointMake(50.0, 50.0)];
[aPath addLineToPoint:CGPointMake(0.0, 50.0)];
[aPath closePath];
UIImageView *imgView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"bar.png"]];
imgView.frame = CGRectMake(0, 0, 100, 100);
[self setClippingPath:aPath :imgView];
[self.view addSubview:imgView];
Chỉ cần nhanh chóng thực hiện một hình vuông ra khỏi phần trên bên trái của hình ảnh. Ví dụ: nếu bạn có hình ảnh vuông, bạn có thể lặp qua chiều rộng và chiều cao của hình ảnh, cắt xén thành các hình vuông riêng biệt bằng cách sử dụng mã ở trên và trả lại riêng lẻ. Tạo mảnh ghép hình phức tạp hơn nhiều, nhưng hy vọng điều này sẽ giúp
Hãy xem câu trả lời của tôi ở đây http://stackoverflow.com/questions/13153223/how-to-crop-the-image-using-uibezierpath/ 15353848 # 15353848 –