我有两个UIImageViews
占据整个屏幕的含义,它们的框架是:(0,0,320,480)。 imageView2
是对imageView1
顶部。通过UIView改变MaskedLayer的大小
他们都有应用他们使用CAShapeLayer
到口罩。我已经做了功能
-(void)addMask:(CGRect)rect toView:(UIImageView*)imageView
这是如下
//Function
-(void)addMask:(CGRect)rect toView:(UIImageView*)imageView {
CAShapeLayer * shapeLayer = [[CAShapeLayer alloc] init];
CGPathRef path = CGPathCreateWithRect(rect, NULL);
shapeLayer.path = path;
CGPathRelease(path);
imageView.layer.mask=shapeLayer;
imageView.layer.masksToBounds=YES;
}
我使用以下CGRects
应用口罩在UIImageViews
在viewDidAppear
:
//In view did Appear
[self addMask:CGRectMake(0,0,160,480) toView:self.imageView];
[self addMask:CGRectMake(160,0,160,480) toView:self.imageView2];
所以结果是屏幕是一半分割,在左侧显示一半imageView1
,在右侧显示一半imageView2
。
我有一个迷上了IBAction(buttonPressed:)
的按钮。
我想达到什么是时按下按钮,而中UIImageView2
遮光罩,减少了imageView1
的面膜增加:使imageView1
在左边,而imageView2
右侧occupty 25占据屏幕的75%屏幕的百分比。我试图现在要做的是在下面的代码,但是这是没有得到预期的效果:
//In IBAction
CGRect tmpRect ;
tmpRect = imageView1.layer.frame;
NSLog(@"Rect1 : %@",NSStringFromCGRect(tmpRect));
tmpRect.size.width+=20.0;
[self addMask:tmpRect toView:self.imageView];
tmpRect= imageView2.layer.frame;
NSLog(@"Rect2 : %@",NSStringFromCGRect(tmpRect));
tmpRect.origin.x+=20.0;
tmpRect.size.width-=20.0;
[self addMask:tmpRect toView:self.imageView2];
输出是
2013-08-26 13:15:41.753 imageMasking[16191:c07] Rect1 : {{0, 0}, {320, 460}}
2013-08-26 13:15:41.754 imageMasking[16191:c07] Rect2 : {{0, 0}, {320, 460}}
继承人什么我米试图实现图片视图。
而且后来我想用panGesture
移动的面具。因此,在使用此功能拖动手指的同时,应用蒙版一千次是不错的主意?
除了我想要达到的目标之外,还有别的选择,因为我的方法可能完全错误。
感谢
谢谢Wain。 那是什么我想 所以展望未来,我将有几个rects,而不仅仅是一个单一的线不会足够了。 所以现在我正在制作一个NSMutableArray的rects,如 _rects = [NSArray arrayWithObjects:@“{{0,0},{160,460}}”,“{{160,0},{160,460 }}“,nil]; 转换CGRectFromString以使用实际的矩形。 谢谢 Waris –