我有两个UIImageViews
占据整个屏幕,这意味着它们的框架是:(0,0,320,480)。
imageView2
位于 之上imageView1
。
他们都使用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;
}
我正在使用以下方法在UIImageViews
in上应用面具:viewDidAppear
CGRects
//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:)
.
我想要实现的是,当按下按钮时,掩码imageView1
增加而掩码UIImageView2
减少:这样imageView1
左侧占据屏幕的 75%,而imageView2
右侧占据屏幕的 25%。我现在要做的是在下面的代码中,但这并没有得到预期的结果:
//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
. 那么,在使用此功能拖动手指时应用掩码一千次是个好主意吗?
是否有任何其他选择可以替代我想要实现的目标,因为我的方法可能完全错误。
谢谢