百思不得解:苹果到底是如何实现这样的阴影效果?

2018-07-26 11:06:31 +08:00
 forkon

最近在尝试实现 iOS 12 里 iBooks 的书籍展示效果。在研究 iBooks app 包内资源的时候发现一张阴影图片,估计苹果就是用这张图片来实现书籍的阴影效果的。

iBooks app 包内阴影素材

iBooks 书籍的阴影效果


我想到的解决方法是将这张阴影图调成适当的尺寸然后放在书籍封面图之后,但是这种方法有个问题——对于不同尺寸的书籍封面图阴影的半径也各不一样(如下图所示),跟 iBooks 上面的效果不一样。

那么苹果到底是如何用上面那张阴影图来实现书籍的阴影? 望各位大神指点,不胜感激!

5334 次点击
所在节点    问与答
30 条回复
bashbot
2018-07-26 11:45:38 +08:00
IOS 不了解,但是背景图片缩放这个问题,当年做安卓时,标准解法是用 .9.png 文件,图片中用透明度给出了可缩放区域的信息。这样改变背景尺寸时,只缩放其中一部分区域。IOS 可以参考一下原理,具体实现自己找找。
https://www.jianshu.com/p/3fd048644e3f
Weny
2018-07-26 11:55:01 +08:00
大概是一个点光源偏上的一个阴影 用算法算 建一个点光源 物体 底平面 推一下就行
forkon
2018-07-26 11:56:13 +08:00
@bashbot 这个方法我知道,如果苹果真是这么实现,它为什么要搞一张 732x1058 这么大的阴影图,耐人寻味……
forkon
2018-07-26 11:57:42 +08:00
@Weny 老哥你这个开销也太大了吧。
rivt
2018-07-26 12:05:42 +08:00
slicing? 我瞎猜的。。。
forkon
2018-07-26 12:10:48 +08:00
@rivt 有可能,但是不知道苹果为什么要搞一张 732x1058 这么大的阴影图来 slicing。
falcon05
2018-07-26 12:12:53 +08:00
有意思
Pudge1337
2018-07-26 12:25:42 +08:00
根据书籍的宽度来改变阴影的宽度?
but0n
2018-07-26 12:26:08 +08:00
九宫格了解一下
alvin666
2018-07-26 12:31:45 +08:00
安卓是根据碘酒 png 来定的,但是你这个阴影图貌似不是碘酒,应该是有个类似碘酒算法处理一下的
forkon
2018-07-26 12:46:19 +08:00
@Pudge1337 那么他的高度呢

@but0n 九宫格?
sennes
2018-07-26 13:03:26 +08:00
太长的话可以从中间切掉呀。
Tokin
2018-07-26 13:16:05 +08:00
感觉如果是 CSS 的话,写起来很简单。。。
littlejohnny
2018-07-26 13:26:37 +08:00
这种阴影可以用类似点 9 图的缩放方法做出来,安卓一直都这么做的,不过 iOS 这个怎么做的就不知道了
bumz
2018-07-26 13:41:43 +08:00
把图片分成九个部分,分别缩放即可
whileFalse
2018-07-26 14:26:32 +08:00
因为美术给出这张图、程序把他打包在 app 里面的时候,iBooks 还只支持标准书籍尺寸。后来需求改变,程序就只是加了个九宫格缩放,图也没变。
mogutouer
2018-07-26 14:32:45 +08:00
手机 CPU 都赶上几年前的电脑了,独立图形芯片都有了,算几个阴影还开销大啊,同一屏也就几个。
forkon
2018-07-26 14:55:25 +08:00
@whileFalse 这个可能性不大。

@mogutouer 话虽这么说,但你把 iOS 里的所有的图片资源导出来看你就会发现,苹果更多的是使用图片来实现阴影而不是现画。
zwzmzd
2018-07-26 15:05:18 +08:00
九宫格显示边缘,太常见的做法了
Microi
2018-07-26 15:07:53 +08:00
关注一下。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/474287

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX