• iOS杂货


    iOS 导航栏TitleView居中的问题

    titleVIew 默认情况下 是居中显示的,出现不居中的情况原因有两个:1,leftBarButtonItem,和rightBarButtonItem 留给titleView 的空间太小导致。 2,你本省自定义的titleView 没有居中,就像如果你的titleView 是个lab ,而lab的textAlengent 没有为center 一样。

    对于第一种,我们可以适当减小title的宽度,或者 设置 sizeThatFIts来解决。

    iOS开发之Autolayout——“Content Compression Resistance”“Content Hugging”

    intrinsic size(固有尺寸),一个根据自身内容大小而决定的尺寸。我们都知道,UIButton、UILabel等,在布局时并不需要给它们设置所有constraints,只需要设置 leading space 和 top space 等能决定 X跟Y的constraints 就能够进行布局,这就是它们的intrinsic size在起作用,决定它们的宽高。

    “Content Compression Resistance Priority”,也叫内容压缩阻力优先级(小名:别挤我),该优先级越高,则越晚轮到被压缩。

    “Content Hugging Priority”,也叫内容紧靠优先级(小名:别扯我),该优先级越高,这越晚轮到被拉伸。

    sizeToFit

    sizeToFit()声明在UIView中,所以我们的所有的视图控件,都可以调用这个方法

    sizeToFit如果不重写sizeThatsFit的话是系统提供frame。

    self.title & self.navigationItem.title

    self.title相当于是同时设置tabBarItem.title和navigationItem.title的快捷方法,而tabBarItem.title才是真正对应tab的标题,navigationItem.title对应NavigationBar上面的标题。

    UIStatusBar

    状态栏的windowLevel为UIWindowLevelStatusBar,而window的windowLevel为UIWindowLevelNormal。所以一般情况下,状态栏位于window之上。

     UIStatusBar的位置和尺寸

    1 NSString *statusBarFrame = NSStringFromCGRect([UIApplication sharedApplication].statusBarFrame);

    NSLog(, statusBarFrame);

    在iPhone 6竖屏测试输出:

    2015-08-04 16:33:47.159 Test[6175:205261] {{0, 0}, {375, 20}}

    在iPhone 6横屏测试输出:

    2015-08-04 16:33:47.159 Test[6175:205261] {{0, 0}, {667, 20}}

    在iPhone 6 Plus竖屏测试输出:

    2015-08-04 16:33:47.159 Test[6175:205261] {{0, 0}, {414, 20}}

    UIStatusBarStyle(字体颜色)和背景颜色

    UIStatusBarStyle控制状态栏的字体颜色,在iOS7只支持两种:UIStatusBarStyleDefault、UIStatusBarStyleLightContent。注意,虽然目前表现出来的颜色是黑色或白色,但不是Black或White之类的,苹果留了一手以防以后改变。Default表示深色(Dark),用于亮色(Light)背景;LightContent表示亮色(Light),用于深色(Dark)背景。当然这也不是强制的。
    在没有导航栏的情况下,状态栏的背景颜色是透明的,可以在View里添加一个20点高度的子View“伪造”一个背景;在有导航栏的情况下,状态栏的背景颜色和状态栏一样,看起来融为了一体
     
    注意:
    如果要在App启动时和运行时全程隐藏状态栏,在View controller-based status bar appearance为NO的情况下,只需简单将Status bar is initially hidden(UIStatusBarHidden)设置为YES。

    设置字体颜色为白色

    可以在Info中将Status bar style(UIStatusBarStyle)对应的Value设置为UIStatusBarStyeLightContent。
    也可以在General中将Status Bar style选择为Light:
    同样的,上面两种设置方法最终作用到info.plist文件。如果没有使用基于ViewController的状态栏控制,并且App内部又需要将状态栏颜色改为黑色,可以在AppDelegate中设置:
    [[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleDefault];
  • 相关阅读:
    SQLyog连接MySQL8.0报2058错误的完美解决方法
    WPF之Binding深入探讨未参考
    C# SQLite 创建数据库的方法增删查改语法和命令
    winform实现INotifyPropertyChanged
    排序算法
    GitHub代码上传
    SQLyog
    Jenkins 部署 .NET MVC 项目
    Visual Studio 2019 代码规范
    C# SqlHelper类
  • 原文地址:https://www.cnblogs.com/H7N9/p/6265696.html
Copyright © 2020-2023  润新知