• 项目笔记


    问题1.2

    1.选中图片被渲染,蓝色

    如何解决:1.通过操作图片 2.通过代码

    2.发布图片显示不出来,并解决

    分析:为什么显示不出来 -> 判断下发布图片和其他图片区别(尺寸不一样) -> 发布图片太大,导致显示不出来 -> 1.改图片尺寸不太好使 -> 系统的UITabBarButton不好使 -> 发布按钮不能使用UITabBarButton去实现 -> 1.直接往tabBar中间添加一个发布按钮(1.多了一个控制器 2.不安全,有可能系统UITabBarButton把你的按钮覆盖) -> 布局tabBar上子控件位置,平均分成5等分,中间留一个文字
     布局tabBar上子控件位置 -> 1.自定义这个控件 2.重写layoutSubviews

    解决1.选中标题颜色 黑色

    • 分析:设置选中标题颜色 -> 拿到谁去设置 -> 标题属于按钮的内容 -> 对应子控制器的tabBarItem

    标题颜色和大小:改为黑色,默认为蓝色

    通过load加载-->全局的tabBarItem调用apperanceWhen-->创建可变字典,在字典中拿到NScolorAN属性设置黑色-->进去查会发现tabItem父类有个setTitle方法:-->同样的方法设置字体大小用字典的NSFont
    apperance的使用条件:只要遵守了这个UIAppearance协议,就能调用appearance
    哪些属性可以通过UIAppearance设置?只要属性有UI_APPEARANCE_SELECTOR这个宏描述,就可以使用UIAppearance设置appearance:必须要再显示之前设置(self.view removeSupviews)

    设置所有的导航标题

    分析: 导航条内容 -> 导航条由栈顶控制器的navgationItem -> 导航控制器的view永远显示出来是栈顶控制器的view ->
    因为有4个导航控制器,所有抽出一个UIBarButtonItem的分类-->设置接收普通图片与高亮图片以及监听点击addtag的方法
    实现该方法,注意点:记得按钮要调用sizeToFit,会发现直接添加到UIBarButtonItem上发现点击范围不对-->所以将创建的button先添加到一个尺寸与button一样的UIView上,在添加到UIBarButtonItem上-->通过该方法设置所有的导航控制器
    • 设置导航条共有的内容-->创建导航控制器获取整个应用的Bar用appearence方法-->设置字体颜色大小-->注意点:设置导航条背景图片:一定要是UIBarMetricsDefault,iOS9之前:UIBarMetricsDefault,导航控制器跟控制器的view尺寸会减少64
    • 设置每个导航器所含内容,并且监听点击事件,发现一个月亮按钮又选中状态的情况
    • 到UIBarButtonItem中设置一个含选中图片的方法,当点击时,让月亮成为选中按钮

    问题3.4

    3.发现使用系统的返回是蓝色,要设置成黑色

    • 重写返回按钮-->创建UITableVc,当点击按钮时push到设置Vc中-->在UIBarButtonItem添加一个设置标题的方法,方便下次其他需要的直接用,添加返回标题为黑色时发现距离左边太远了.
    • 在该方法中设置内边距解决这问题,

      • 考虑到后面可能需要设置其他的返回按钮,所以在push方法设置返回按钮,注意:如果跳转的控制器不设置颜色会卡顿

      • 当添加的按钮覆盖了系统的按钮发现系统的滑动功能没有了,添加滑动功能,滑动返回功能 -> 1.手势被干掉 pass 2.代理 -> 根控制器不需要滑动返回,不然会发现有锁死的可能,

      • 研究全屏滑动返回功能:为什么导航控制器只能边缘触发手势 -> 打印了下系统手势 -> 添加Pan手势,发现手势少一个target和一个action-->

      • 打印系统的self.interactivePopGestureRecognizer,会发现一些方法

      • 可以用系统的-->系统的UIScreenEdgePanGestureRecognizer会调用target的action方法来滑动返回-->所以用系统的target与action(handleNavigationTransition:)方法就行

      • 把以前的边缘滑动设置为NO

    知识补充

    • UIScreenEdgePanGestureRecognizer:边缘滑动手势
    • UIPanGestureRecognizer:全屏,整个范围

    总结:需求推动开发,思路最重要

  • 相关阅读:
    键值表
    CRC校验方法
    extern 使用
    编码格式简介(ANSI、GBK、GB2312、UTF-8、GB18030和 UNICODE)
    学习积累
    二分查找写法
    生活技术常识
    JAVA实例
    JAVA_Sprint学习(一)
    手把手使用Git?
  • 原文地址:https://www.cnblogs.com/xieyunqq/p/5146354.html
Copyright © 2020-2023  润新知