【发布时间】:2016-12-27 23:27:46
【问题描述】:
我在滚动视图中有一个 UILabel。
我想掩盖滚动视图的一部分,当 UILabel 进入该部分时,它会改变它的颜色。
找不到怎么做。
【问题讨论】:
标签: ios uiview core-animation mask
我在滚动视图中有一个 UILabel。
我想掩盖滚动视图的一部分,当 UILabel 进入该部分时,它会改变它的颜色。
找不到怎么做。
【问题讨论】:
标签: ios uiview core-animation mask
试试这个代码:
- (void)viewDidLoad {
[super viewDidLoad];
UIView *maskView = [[UIView alloc] initWithFrame:CGRectMake(100, 200, 100, 100)];
maskView.backgroundColor = [UIColor greenColor];
maskView.alpha = 0.5;
self.maskView = maskView;
[self.view addSubview:maskView];
}
- (void)scrollViewDidScroll:(UIScrollView *)scrollView {
CGRect rect = [self.label convertRect:CGRectMake(0, 0, 100, 100) toView:self.maskView];
NSLog(@"%@", NSStringFromCGRect(rect));
if (rect.origin.y >= self.maskView.frame.size.height || rect.origin.y <= -self.label.frame.size.height) {
self.label.backgroundColor = [UIColor redColor];
} else {
self.label.backgroundColor = [UIColor orangeColor];
}
}
密钥是scrollViewDidScroll: 和convertRect: toView:。
【讨论】: