Tôi cần phải thêm mặt nạ trên đầu và mông của màn hình như thế này.Thêm mặt nạ mờ ở trên cùng và dưới cùng của màn hình trong Objective-C
Tôi làm cách nào để đạt được điều này?
Tôi cần phải thêm mặt nạ trên đầu và mông của màn hình như thế này.Thêm mặt nạ mờ ở trên cùng và dưới cùng của màn hình trong Objective-C
Tôi làm cách nào để đạt được điều này?
Tôi có thể nghĩ ra một cách để đạt được hiệu ứng này. Nhưng những gì bạn cần không phải là một mặt nạ mờ, bạn cần phải sử dụng một mặt nạ cắt.
1- trình bày bộ điều khiển chế độ xem có chế độ xem UIVisualEffectView ở mặt sau và chế độ xem cuộn/xem/xem bộ sưu tập ở mặt trước được bù đắp 40px (hoặc tuy nhiên bạn muốn) từ trên xuống dưới. 2- Thêm một mặt nạ để xem di chuyển sử dụng một hình ảnh màu đen và trắng phù hợp với nhiệm vụ, bạn có thể thêm mặt nạ sử dụng đoạn mã sau:
var maskImage = UIImage(name: "yourMask")
var maskLayer = CALayer()
maskLayer.frame = scrollView.bounds()
maskLayer.contents = maskImage.CGImage
scrollview.layer.mask = maskLayer
3- Ngoài ra, bạn cũng có thể sử dụng để đạt được các CAGradientLayer cùng một hiệu ứng (điều này sẽ làm việc tốt hơn với việc mở rộng quy mô). Có rất nhiều giải pháp về ngăn xếp tràn trên cách tạo lớp gradient, như thế này: Create gradient image programmatically in iOS
Có nói rằng tôi không hiểu tại sao câu hỏi của bạn bị bỏ phiếu. Tôi nghĩ đó là một câu hỏi hoàn hảo hay.
Hy vọng điều này sẽ hữu ích!
if (!UIAccessibilityIsReduceTransparencyEnabled()) {
self.BlurView.backgroundColor = [UIColor clearColor];
UIBlurEffect *blurEffect = [UIBlurEffect effectWithStyle:UIBlurEffectStyleLight];
UIVisualEffectView *blurEffectView = [[UIVisualEffectView alloc] initWithEffect:blurEffect];
blurEffectView.frame = self.view.bounds;
[blurEffectView setAlpha:1.0];
[self.BlurView addSubview:blurEffectView];
}
Nơi self.BlurView
là loại UIView
.
Bạn có thể giữ điều này cho chế độ xem trên và dưới. Và có thể điều chỉnh khung blurEffectView.frame
theo kích thước trên và dưới của bạn.
Hy vọng điều này sẽ giúp bạn.
Thêm UIVisualEffectView trên đầu trang:
UIVisualEffectView * vs = [[UIVisualEffectView alloc] initWithEffect:[UIBlurEffect effectWithStyle:UIBlurEffectStyleDark]];
vs.frame = self.view.bounds;
[self.view addSubview:vs];
Thêm mã này:
CAGradientLayer * layer = [CAGradientLayer layer];
layer.frame = tableHolder.bounds;
layer.colors = [NSArray arrayWithObjects:(id)[UIColor blackColor].CGColor, (id)[UIColor clearColor].CGColor, (id)[UIColor clearColor].CGColor, nil];
layer.locations = @[@0.90,@0.99,@1.0];
layer.startPoint = CGPointMake(0.0, 1.0f);
layer.endPoint = CGPointMake(0.0f, 0.0f);
tableHolder.layer.mask = layer;
tableHolder.layer.masksToBounds = true;
[tableHolder.layer insertSublayer:layer atIndex:0];
Điều chỉnh các biến cho nhu cầu riêng của bạn, bạn sẽ phải thay đổi vị trí.
Bạn không 'làm mờ' các đầu và đáy, nhưng dần dần che chúng ra thông qua lớp gradient.
Tôi đoán bạn nên kiểm tra liên kết này: [UIVisualEffectView] (http://stackoverflow.com/questions/24067719/how-to-use-uivisualeffectview) –