2011-08-15 40 views
11

Tôi đang cố che mặt hình ảnh để tôi chỉ có thể cho nó hai góc tròn. Với mã mà tôi có nó chỉ cần thêm mặt nạ màu trắng trên hình ảnh, nhưng dường như không áp dụng nó. Tôi cần phải làm gì khác để che giấu các góc hình ảnh?iOS: Mặt nạ UIImage bằng UIBezierPath

CAShapeLayer *maskLayer = [CAShapeLayer layer]; 
UIBezierPath *roundedPath = [UIBezierPath bezierPathWithRoundedRect:maskLayer.bounds byRoundingCorners:UIRectCornerTopLeft | UIRectCornerBottomRight cornerRadii:CGSizeMake(16.f, 16.f)];  
maskLayer.fillColor = [[UIColor whiteColor] CGColor]; 
maskLayer.backgroundColor = [[UIColor clearColor] CGColor]; 
maskLayer.path = [roundedPath CGPath]; 

// Add mask 
self.imageView.layer.mask = maskLayer; 

Trả lời

6

Round two corners in UIView

Như đã đề cập trong câu hỏi liên quan ở trên, bạn có thể cần phải loại bỏ các quan điểm từ các hệ thống cấp bậc trước khi áp dụng mặt nạ của mình.

[self.imageView removeFromSuperview]; 
self.imageView.layer.mask = maskLayer; 
[self.view addSubview:self.imageView]; 

Ngoài ra, maskLayer của bạn không có bounds. Bạn cần đặt nó thành frame (hoặc bounds) của chế độ xem bạn đang cố gắng che dấu.

CAShapeLayer *maskLayer = [CAShapeLayer layer]; 
maskLayer.frame = self.imageView.frame; 
+0

darvidsBạn có thể plz cho tôi biết cách tôi có thể lưu hình ảnh bị che giấu này trong UIImage ... ??? –

+1

Vui lòng đọc tài liệu của Apple. Tôi sẽ bắt đầu với ['UIImage'] (http://developer.apple.com/library/ios/#documentation/UIKit/Reference/UIImage_Class/Reference/Reference.html), và cả [' CGImage'] (http: //developer.apple.com/library/ios/documentation/GraphicsImaging/Reference/CGImage/Reference/reference.html#//apple_ref/doc/uid/TP30000956-Reference-DontLinkElementID_1), là đối tượng hình ảnh cơ bản bên trong một ' UIImage'. Bạn sẽ thấy rằng trong 'CGImage' có các hàm để tạo ra một hình ảnh bằng cách sử dụng một mặt nạ, và sau đó một hàm tạo' UIImage' sẽ lấy ảnh 'CGImage' mới của bạn làm hình ảnh. – darvids0n

+0

Cảm ơn bạn đã trả lời.Tôi không thể tìm thấy bất cứ điều gì đó là lý do tại sao tôi yêu cầu ... –

Các vấn đề liên quan