iOS 仿网易 APP 界面封装

483 查看

目录 我是代码

  1. 字体放大
  2. 颜色RGBA
  3. 滑块
  4. 内容类型
  5. 实现效果方法
  6. Layout, 旋转
  7. CRUD
  8. cocoaPods
  9. 使用
  10. 问答
    个人测试有限, 如果有什么问题请评论或issue我 GitHub
style.gif

1. 字体放大


 
zoom.gif

一开始选择的是UIButton, 改变UIFont, 效果如上, 如以上下抖动的方式增减, UILable也同样, 找不到其他方式. 最后用的是缩放, 问题是连UIButton整个控件都会缩放, 理想中效果想要只缩放里面的UILable.

出现的问题 : 不影响视觉效果, 影响可能多的自定义
UIButton 自定义的时候背景色只能设置它的容器->UIScroll
滚动的时候要取原来的x坐标,width等

2. 颜色RGBA


一开始仿的是网易新闻的APP, 黑>红, 想半天没明白, 后来对照了RGB,
黑 (R:0 G:0 B:0)
红 (R:0 G:255 B:0) 好了, 问题解决了. 之后就扩展了RGBA, 不过本人色弱, 不同值之间转换时颜色效果我是忽略了

3. 滑块


扇贝APP, 有变宽度的效果. 还好开始时就想到给滑块加个容器, 好处就很明显了, 移动的时候控制容器, 滑块的宽度重写容器的setter就可以, 宽度可以自定义, 也可以根据标签串长度+自定义数值

4. 内容类型


可以的UIViewController 或 UIView , 且两者嵌套
切换时需要立即刷新, 我用的是 继承或Category
如果需要重用UIViewController, 请看 Demo

嵌套时效果
滚动内层时直接调的是外层的UIScroll(斗鱼APP) : 内层.ctScroll.scrollEnabled = NO;
默认调的是内层自己的, 只要是两个都写 delegate = self;

5. 实现效果方法


  1. 区分左右滑, 上一个, 下一个 UIButton
  2. 移动点: 滚动内容里转化百分比到标签的UIScrollView.contentOffset ,
    总距离: 两个UIButton.x 的间距
    每个点变化: RGBA, 滑块宽度, / 总距离 得到的比例 * 缩放

6. Layout, 旋转


适配Xib: - (void)layoutSubviews 获得的frame正确
如果Xib控件之前有一个代码写的控件 - (void)awakeFromNib 中获取的frame有效, 如果全是Xib, 获取的frame就有问题, 哪怕你调用

获取的frame也会出错, 最后只能重写代码

得到的经验
初始化只配置数据, - (void)layoutSubviews 配置frame

7. CRUD


黄易的效果, 包括改变完之后直接对比之前的数据