我有一个UIView
中,我定义它是通过以下方式边界:
self.layer.borderColor = [UIColor blackColor].CGColor;
self.layer.borderWidth = 3;
我附上一个子视图到这个UIView
,而当我移动子视图越过边境,它会在它之下。 这是预期的行为? 反正有做在它上面的子视图去?
我有一个UIView
中,我定义它是通过以下方式边界:
self.layer.borderColor = [UIColor blackColor].CGColor;
self.layer.borderWidth = 3;
我附上一个子视图到这个UIView
,而当我移动子视图越过边境,它会在它之下。 这是预期的行为? 反正有做在它上面的子视图去?
按照苹果的规格 : It is composited above the receiver's contents and sublayers.
因此,边界将永远是高于一切的子视图,即使你把你的子视图到前面等。
所以我做一个背景视图伪造的边界。
例如:
UIView *backgroundView = [[UIView alloc] initWithFrame:CGRectMake(100, 100, 200, 200)];
backgroundView.backgroundColor = [UIColor blackColor];
backgroundView.clipsToBounds = NO;
UIView *bView = [[UIView alloc] initWithFrame:CGRectInset(backgroundView.bounds, 3, 3)];
bView.backgroundColor = [UIColor redColor];
UIView *cView = [[UIView alloc] initWithFrame:CGRectMake(-50, -50, 100, 100)];
cView.backgroundColor = [UIColor yellowColor];
[bView addSubview:cView];
[backgroundView addSubview:bView];
[self.window addSubview:backgroundView];
和效果:
你尝试了上海华盈的“clipsToBounds”属性设置为YES? 这是默认的性能原因设置为NO,但它设置为yes可能给你你正在寻找的效果。
根据您的视图结构,它可能是更容易的子视图添加到您的主视图的父 。 然后,它可以重叠,主视图,并且将覆盖边境按照您的要求。