在scrollview iphone周围的阴影或边框

tpf*_*raf 8 iphone border shadow scrollview uiscrollview

我想在uiscrollview周围绘制一个边框/阴影,我知道我可以通过额外的视图或滚动视图到达那里但不喜欢处理缺点但我听说应该有可能直接绘制一个边框滚动视图这就是我想要的.

我对iphone开发很安静,任何答案都会有所帮助.

jha*_*ott 19

如果你使用滚动视图(或任何UIView)的图层属性,你可以轻松获得一个稳固的边框...

#import <QuartzCore/QuartzCore.h>
...
myView.layer.borderWidth = 2;
myView.layer.borderColor = [UIColor blackColor].CGColor;
Run Code Online (Sandbox Code Playgroud)

您也可以通过设置layer.shadow*属性来使用图层来应用实时阴影,但使用此技术可能会降低性能,因此我通常更喜欢使用以下更复杂但更高效的技术.您可以创建一个中间有透明度和边缘阴影的PNG图像 - 它需要有9个不同的区域:每个角4个,每个边4个,中间有一个完全透明的1x1像素区域.例如,如果阴影在图像中延伸6个像素,则图像将为13x13,其中6个像素宽/高边框和1x1区域位于中间.然后使用以下方法将其设置为可缩放图像:

newImage = [image stretchableImageWithLeftCapWidth:6 topCapHeight:6];
Run Code Online (Sandbox Code Playgroud)

更新:由于stretchableImageWithLeftCapWidth:topCapHeight:不推荐使用iOS 5.0 ,因此如果您仍想支持iOS 4.x设备,请仅使用此功能.如果您只想支持iOS 5.0+设备,请改用:

newImage = [image resizableImageWithCapInsets:UIEdgeInsetsMake(6, 6, 6, 6)];
Run Code Online (Sandbox Code Playgroud)

然后将图像放在父视图上,使其占据滚动视图的整个区域.如果你想让阴影超过你的可滚动元素,(所以你的滚动视图看起来在页面的其余部分后面/后面),然后在顶部放置一个透明的UIView,上面有阴影图像,这样就可以显示滚动视图在它背后.


Jas*_*per 5

别忘了:

#import <QuartzCore/QuartzCore.h>
Run Code Online (Sandbox Code Playgroud)

如果你想使用

myView.layer.borderWidth = 2;
myView.layer.borderColor = [UIColor blackColor].CGColor;
Run Code Online (Sandbox Code Playgroud)