我想在 uiscrollview 周围绘制边框/阴影,我知道我可以通过附加视图或滚动视图到达那里,但不喜欢处理缺点,但我听说应该有可能直接在滚动视图上绘制边框这就是我想要的。
我对 iPhone 开发很陌生,答案会很有帮助。
如果您使用滚动视图(或任何 UIView)的图层属性,您可以轻松获得实心边框...
#import <QuartzCore/QuartzCore.h>
...
myView.layer.borderWidth = 2;
myView.layer.borderColor = [UIColor blackColor].CGColor;
您还可以通过设置图层来应用实时阴影layer.shadow*
属性,但使用此技术性能可能会很慢,因此我通常更喜欢使用以下更复杂但性能更高的技术。您可以创建中间透明、边缘周围有阴影的 PNG 图像 - 它需要有 9 个不同的区域:每个角 4 个,每个边缘 4 个,中间有一个完全透明的 1x1 像素区域。例如,如果您的阴影将 6 像素延伸到图像中,则您的图像将为 13x13,具有 6 像素宽/高边框和中间的 1x1 区域。然后使用以下命令将其设置为可缩放图像:
newImage = [image stretchableImageWithLeftCapWidth:6 topCapHeight:6];
UPDATE:从iOS 5.0开始stretchableImageWithLeftCapWidth:topCapHeight:
已弃用,因此仅当您仍想支持 iOS 4.x 设备时才使用此选项。如果您只想支持 iOS 5.0+ 设备,请使用以下命令:
newImage = [image resizableImageWithCapInsets:UIEdgeInsetsMake(6, 6, 6, 6)];
然后将图像放在父视图上,使其占据滚动视图的整个区域。如果您希望阴影覆盖可滚动元素(因此您的滚动视图看起来嵌入/位于页面其余部分的后面),则在顶部放置一个透明的 UIView,上面有阴影图像,以便它显示到您的滚动视图在它后面。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)