以上就是对RTL,阿拉伯地区适配,适配
最近公司需求 , 海外产品需要适配RTL布局 , 伯地区右侧布局模式 。
寻找了很多方法 , 也尝试了很多种方法 , 最终有了一知半解的理解 , 应用到项目当中的时候发现会有很多问题 , 折磨了一周 , 突然发现是在项目中的一个扩展影响到了布局的改变 。
上代码:
文章图片
项目截图
在这里要注意left和right
如果你是用的Auto的话你就不能用left、right了你需要改成leading 、trailing这样的话就会自动适应(我项目中用的不是Auto , 所以我没有尝试)
我项目中用的是frame的写法 , 就非常不友好了 。 需要自己处理 。
文章图片
图片镜像API
我试过了很多图片不能用 , 下面来介绍黑魔法:
文章图片
api
在项目中可以根据语言自动切换
接下来就是UIButton 的内边距:
文章图片
hookUIButton的方法
在直播项目中聊天室公屏的适配
在聊天室公屏聊天区域展示的是用户的昵称以及发送的文字 , 表情 , 礼物等 。 具体展示如下图:
文章图片
聊天室聊天区域展示的
在这个地方存在很多问题(Auto除外)图文混排我是用的YYText框架 。 正常环境下展示没有任何问题 。 当且切换语言到伯语的时候所有的布局如上图所示 。 在RTL环境中冒号和型号(*)会影响数据排列的循序 。 所以我的处理方式是把冒号和星号(*)用别的字符给替换掉 。 这里就要用到运行时:通过hookUILabel的setText方法更改所有的文字 。 如图:
文章图片
hookUILabel的text方法
这样处理 , 项目中的大部分文字都可以改掉 , 对于富文本我单独处理hookUILabel的attributeText方法跟上图方法一样把setText改成setAtrributeText方法 。
对于UITableView , UICollectionView , UIScrollView就需要我们单独处理 , 通过查找文档发现 。
UITableView不用处理 , 只需要更改Cell的UI顺序即可.
UICollectionViewFlowLayout有两个代理方法需要实现:
【以上就是对RTL,阿拉伯地区适配,适配】
文章图片
在collectionView实现的地方写
文章图片
自定义layout里面写
对于UIScrollView我的做法是把所有的数据源翻转 , 其它的什么也不用处理 。
推荐阅读
- 南儿风尚|40岁以上的女人,想要减龄显瘦有气质,适合穿什么裙子?
- 澎湃新闻|济南将拟新规:开出租车需取得高中及以上学历
- 一周酒讯|今年前五月规模以上企业酿酒总产量降幅近6%
- 减持股份|一周酒讯|今年前五月规模以上企业酿酒总产量降幅近6%
- 贵州茅台|一周酒讯|今年前五月规模以上企业酿酒总产量降幅近6%
- 一块板砖原创球评|是神射手也是对手点名的突破口,李春江如此用人是否得不偿失?
- 股东|警惕!奥美医疗:陈浩华等持股5%以上股东、董事、高管人员计划减持不超过8.2647%
- 公司|警惕!奥美医疗:陈浩华等持股5%以上股东、董事、高管人员计划减持不超过8.2647%
- 丁先生和黄小姐|《小欢喜》宋倩:你自以为是的爱,是对孩子最大的伤害
- 中央纪委国家监委网 央视新闻|中纪委:上半年171名厅局级及以上干部被查