阴影,或边框四周滚动型iphone(Shadow or Border around a scroll

2019-07-23 08:48发布

我想提请围绕一个UIScrollView边框/阴影,我知道,我可以用一个额外的视图或滚动视图那里,但不喜欢处理的弊端,但听说那里应该是消法绘制边框的滚动型的可能性而这正是我希望。

我安静的新iphone的研究与开发,任何答案会很有帮助。

Answer 1:

如果您使用滚动视图的图层属性(或任何UIView的),就可以轻松搞定了坚实的边界...

#import <QuartzCore/QuartzCore.h>
...
myView.layer.borderWidth = 2;
myView.layer.borderColor = [UIColor blackColor].CGColor;

您也可以使用层通过设置应用实时阴影layer.shadow*性能,但性能可与这种技术缓慢的,所以我一般喜欢用下面的更复杂,但更高性能的技术。 对于每一个角落,4每条边,并在中间有一个完全透明的1x1像素区域4:它需要有9个不同的领域 - 您可以创建在中间和阴影周围的边缘透明PNG图像。 例如,如果你的影子延伸6个像素到您的图像,你的图像将是13×13与6像素宽/高的边界和在中间的1x1的区域。 然后将它设置为使用可扩展的图像:

newImage = [image stretchableImageWithLeftCapWidth:6 topCapHeight:6];

更新:由于iOS的5.0 stretchableImageWithLeftCapWidth:topCapHeight:不赞成所以只有当你还是要支持的iOS 4.x的设备使用此。 如果你想只支持iOS 5.0及设备的使用,而不是:

newImage = [image resizableImageWithCapInsets:UIEdgeInsetsMake(6, 6, 6, 6)];

然后你把图像上的父视图,因此占用的滚动视图的整个区域。 如果您想阴影中走在你的滚动元件,(所以你的滚动视图看起来插图/页面的其余部分的后面),然后放置在与它的阴影图像顶部的透明的UIView,使其显示通过你的滚动视图它的后面。



Answer 2:

不要忘了:

#import <QuartzCore/QuartzCore.h>

如果你想使用

myView.layer.borderWidth = 2;
myView.layer.borderColor = [UIColor blackColor].CGColor;


Answer 3:

为了从的UIColor获得CGColorRef你也可以用这个例子:

myView.layer.borderWidth = 2;
myView.layer.borderColor = [UIColor blackColor].CGColor;


Answer 4:

myView.layout.borderColor使用的UIColor时,并没有改变边界对我产生不兼容的指针警告。

使用CGColorRef为我工作,而不是:

CGFloat lComponents[4] = {0,0,0,1};
CGColorSpaceRef lColorSpace = CGColorSpaceCreateDeviceRGB();
myView.layer.borderColor = CGColorCreate(lColorSpace, lComponents);
CGColorSpaceRelease(lColorSpace);


文章来源: Shadow or Border around a scrollview iphone