像优酷那种布局先计算好加载显示,图片后面加载渲染的操作是怎么做到的?
目前能想到的,是服务端返回了图片宽高,⊙∀⊙!,
固定尺寸布局,图片不裁剪不拉伸,怎么才能显示的好看呢???
为啥客户端(iOS
/Android
)可以显示系统的表情,服务端以及前端不能显示,过滤之后有部分表情可以显示(这一点可以确定,不是图片来的),但我发现大部分APP都可以支持表情的,难道都是图片实现的么???
系统表情是特殊编码? 貌似是这么回事,后端做了过滤,
那是因为数据库版本不支持
参考链接: http://blog.csdn.net/allangold/article/details/51689350
关于列表的图片展示,遇到一些不规则的且大小不一的图片该怎么处理呢???
一开始我也以为很简单,直接使用默认的contentModeUIViewContentModeScaleToFill
,结果显示出来的图片很丑,拉伸变形,扭曲到无fuck说~ 因为这种模式是
///这种只显示局部,多余部分裁剪掉
photoView.contentMode = UIViewContentModeScaleAspectFill;
photoView.clipsToBounds = YES;
如下图所示:
typedef NS_ENUM(NSInteger, UIViewContentMode) {
UIViewContentModeScaleToFill,
//只是整体填满,不管图片死活,
怎么拉伸啊,怎么撕扯啊,怎么挤压啊,
啥都不管,不负责任的~
也就是`UIImageView`的`contentMode`默认的情况
UIViewContentModeScaleAspectFit,
///这是整体按比例缩放,这样显示出来的图片最好看,
也不变形,就是不能填满整个ImageView
UIViewContentModeScaleAspectFill,
// contents scaled to fill with fixed aspect.
some portion of content may be clipped.
看英文意思也知道,是说会进行等比缩放进行填充,
然后多余部分clipped(裁剪)掉,
注意要加上`imageView.clipsToBounds = YES;`这个操作
UIViewContentModeRedraw, // redraw on bounds change (calls -setNeedsDisplay) 重新渲染边界大小啥的
UIViewContentModeCenter, // contents remain same size. positioned adjusted. 保持原有大小,取中心局部位置的地方,应该也要裁剪操作 (下同)
UIViewContentModeTop, //上面
UIViewContentModeBottom,//底部
UIViewContentModeLeft,//左边
UIViewContentModeRight,//右边
UIViewContentModeTopLeft,//左上
UIViewContentModeTopRight,//右上
UIViewContentModeBottomLeft,//左下
UIViewContentModeBottomRight,//右下
};