11 ios 状态栏偏移_ios状态栏偏移 - CSDN
  • 1、在开发过程中我们可能遇到更改状态栏的颜色、或者文字颜色等操作,下面就是状态栏的一些基本操作 当我们开发过程中,我们可能会遇到进入每一个页面状态栏的颜色、或者文字颜色都是不一样的。那我们怎么实现呢? ...

    1、在开发过程中我们可能遇到更改状态栏的颜色、或者文字颜色等操作,下面就是状态栏的一些基本操作

    当我们开发过程中,我们可能会遇到进入每一个页面状态栏的颜色、或者文字颜色都是不一样的。那我们怎么实现呢?

    首先我们在info.plist文件加入下面这些

     <key>UIStatusBarHidden</key>
      <false/>
     <key>UIStatusBarStyle</key>
     <string>UIStatusBarStyleLightContent</string>
     <key>UIViewControllerBasedStatusBarAppearance</key>
      <false/>

    加入完成以后,我们剩下的就是应用了

    
    //设置字体颜色
    - (UIStatusBarStyle)preferredStatusBarStyle{
        return UIStatusBarStyleLightContent;//白色
    }
    
    //设置状态栏颜色
    - (void)setStatusBarBackgroundColor:(UIColor *)color {
        
        UIView *statusBar = [[[UIApplication sharedApplication] valueForKey:@"statusBarWindow"] valueForKey:@"statusBar"];
        if ([statusBar respondsToSelector:@selector(setBackgroundColor:)]) {
            statusBar.backgroundColor = color;
        }
    }
    //!!!重点在viewWillAppear方法里调用下面两个方法
    -(void)viewWillAppear:(BOOL)animated{
        [self preferredStatusBarStyle];
        [self setStatusBarBackgroundColor:[UIColor redColor]];
    }

    将这些代码完成以后,我们就能时时更改每一个页面的状态栏颜色

    2、当我们在开发过程中,我们会发现视图向下移动一些坐标,下面这个方法就能得到解决

        if (@available(iOS 11.0, *)){
            [[UIScrollView appearance] setContentInsetAdjustmentBehavior:UIScrollViewContentInsetAdjustmentNever];
        }else{
            self.automaticallyAdjustsScrollViewInsets = NO;
        }

     

    展开全文
  • 好评率100%,一行代码搞定导航栏颜色、透明度、标题、状态栏偏移等,强烈推荐 oc和swift都有 github地址:https://github.com/wangrui460/WRNavigationBar 简书实现过程地址:...
  • 文章说明: 未经授权严禁转发套作;...iOS11出来以后导航自定义按钮会出现偏移问题,如下图: 解决方案: 1.修改偏移量; 2.调整响应范围; 我的导航是storyboard 拖UIButton进去的, 所以我在控制...

    原文地址: http://blog.csdn.net/qq_31810357/article/details/78364336

    文章说明: 未经授权严禁转发套作;

    iOS11出来以后导航栏自定义按钮会出现偏移问题,如下图:





    解决方案: 1.修改偏移量; 2.调整响应范围;

    我的导航栏是storyboard 拖UIButton进去的, 所以我在控制器下拖拉了属性:



    1.解决偏移问题:

    // 我的设备
    [letButton setImage:[UIImage imageNamed:@"health_leftBtn"] forState:UIControlStateNormal];
    [letButton setTitle:@"我的设备" forState:UIControlStateNormal];
    letButton.titleLabel.font = [UIFont systemFontOfSize:10.0];
    [letButton JQ_verticalCenterImageAndTitle:0];
    letButton.contentEdgeInsets = UIEdgeInsetsMake(0, -40,0, 0);
    letButton.imageEdgeInsets = UIEdgeInsetsMake(0, -20,0, 0);
    [letButton JQ_verticalCenterImageAndTitle:3];
    

    2.解决响应事件的触发范围:

    // 解决扩大响应范围
    [letButton setEnlargeEdgeWithTop:0 right:10 bottom:10 left:40];

    最终效果如下:


    其中解决触发范围使用了Runtime,代码如下:

    // .h

    #import <UIKit/UIKit.h>
    
    @interface UIButton (EnlargeTouchArea)
    
    - (void)setEnlargeEdgeWithTop:(CGFloat)top right:(CGFloat)right bottom:(CGFloat)bottom left:(CGFloat)left;
    
    @end


    // .m

    #import "UIButton+EnlargeTouchArea.h"
    #import <objc/runtime.h>
    
    @implementation UIButton (EnlargeTouchArea)
    
    static char topNameKey;
    static char rightNameKey;
    static char bottomNameKey;
    static char leftNameKey;
    
    - (void)setEnlargeEdgeWithTop:(CGFloat)top right:(CGFloat)right bottom:(CGFloat)bottom left:(CGFloat)left
    {
        objc_setAssociatedObject(self, &topNameKey, [NSNumber numberWithFloat:top], OBJC_ASSOCIATION_COPY_NONATOMIC);
        objc_setAssociatedObject(self, &rightNameKey, [NSNumber numberWithFloat:right], OBJC_ASSOCIATION_COPY_NONATOMIC);
        objc_setAssociatedObject(self, &bottomNameKey, [NSNumber numberWithFloat:bottom], OBJC_ASSOCIATION_COPY_NONATOMIC);
        objc_setAssociatedObject(self, &leftNameKey, [NSNumber numberWithFloat:left], OBJC_ASSOCIATION_COPY_NONATOMIC);
    }
    
    - (CGRect)enlargedRect
    {
        NSNumber *topEdge = objc_getAssociatedObject(self, &topNameKey);
        NSNumber *rightEdge = objc_getAssociatedObject(self, &rightNameKey);
        NSNumber *bottomEdge = objc_getAssociatedObject(self, &bottomNameKey);
        NSNumber *leftEdge = objc_getAssociatedObject(self, &leftNameKey);
        if (topEdge && rightEdge && bottomEdge && leftEdge)
        {
            return CGRectMake(self.bounds.origin.x - leftEdge.floatValue,
                              self.bounds.origin.y - topEdge.floatValue,
                              self.bounds.size.width + leftEdge.floatValue + rightEdge.floatValue,
                              self.bounds.size.height + topEdge.floatValue + bottomEdge.floatValue);
        } else {
            return self.bounds;
        }
    }
    
    - (UIView*)hitTest:(CGPoint)point withEvent:(UIEvent*)event
    {
        CGRect rect = [self enlargedRect];
        if (CGRectEqualToRect(rect, self.bounds)) {
            return [super hitTest:point withEvent:event];
        }
        return CGRectContainsPoint(rect, point) ? self : nil;
    }
    
    @end
    


    iOS开发者交流群(官方收费群):①446310206 ②446310206
    推荐资源:
    iOS-Swift-Developers
    iOS-OC-Developer

    展开全文
  • 2、在利用xib绘制UIScrollerView时,且去除了安全区域,页面总是出现偏移一个状态栏高度。 问题解决方式: 1、代码 if (@available(iOS 11.0,*)) { self.backScrollView.contentInsetAdjustmentBehavior = ...

    问题出现情况:
    1、无导航条,且全屏是一个滚动视图
    2、在利用xib绘制UIScrollerView时,且去除了安全区域,页面总是出现偏移一个状态栏高度。
    问题解决方式:
    1、代码

    if (@available(iOS 11.0,*)) {
        self.backScrollView.contentInsetAdjustmentBehavior = UIScrollViewContentInsetAdjustmentNever;
    }else{
        self.automaticallyAdjustsScrollViewInsets = NO;
    }
    

    2、修改xib文件的配置,修改此处的值即可,修改为Never
    在这里插入图片描述

    展开全文
  • 做项目的时候发现UIScrollView 回弹有问题,不能回弹到原来的位置,只能到状态栏下面,在此记录下 主要是 iOS11 新增的 contentInsetAdjustmentBehavior 改成下面的就可以了 if (@available(iOS 11.0, *)) { _...

    做项目的时候发现UIScrollView 回弹有问题,不能回弹到原来的位置,只能到状态栏下面,在此记录下
    主要是 iOS11 新增的 contentInsetAdjustmentBehavior
    改成下面的就可以了

     if (@available(iOS 11.0, *)) {
            _scrollView.contentInsetAdjustmentBehavior = UIScrollViewContentInsetAdjustmentNever;
        } else {
                self.automaticallyAdjustsScrollViewInsets = false;
        }
    展开全文
  • 解决方案: 方法1:在html中设置 <meta name="viewport" content="viewport-fit=cover,maximum-scale=1.0,minimum-scale=1.0,user-scalable=0,width=device-width,initial-scale=1.0" /> ...if #a...
  • 使用导航Push进来以TableView为主的视图(继承... 从iOS7开始,导航条和状态栏合为一体,且成为半透明状,viewController.view的坐标(0,0)点在屏幕左上方,如果子视图位置在view的顶部,就会被导航条遮盖,所以v...
  • if (@available(iOS 11.0, *)) { self.tableView.contentInsetAdjustmentBehavior = UIScrollViewContentInsetAdjustmentNever; } else { self.automaticallyAdjustsScrollViewInsets = NO; } 参考 htt...
  • iOS7是目前iOS史上最颠覆的一次改版。 它的出现令人兴奋,因为它将会带我们进入一个全新的时代; 它的到来也让我们忧心,因为它颠覆了一切,包括我们过去做过的很多努力。 但是,相信大家乐意为这个全新...
  • ios 11系统出来后,需要适配一下tableview,如果tableview的界面没有导航栏,并且想要tableview的内容和状态栏重复的话,就需要考虑到iOS11的安全区域问题了。这些是上网搜到的一位大神博客,找到了解决办法,非常...
  • IOS 11之前可以通过 navigationItem.leftBarButtonItem.width来控制按钮的偏移,但是IOS 11之后这个设置不生效了,添加leftBarButtonItem后的默认状态如下:左边有20像素的偏移,不属于返回按键的点击区域网上有两种...
  • iOS 11 自定义UINavigationBar适配问题,导航条向上偏移20点问题UINavigationBar结构改变了 自定义导航适配问题
  • // When the user taps the status bar, the scroll view beneath the touch which is closest to the status bar will be scrolled to top, but only if its `scrollsToTop` property is YES, its delegate does no
  • 一、设置导航样式 二、自定义导航返回按钮后侧滑不可用问题 三、隐藏导航底部的分割线 四、导航引起的布局问题 一、设置导航样式 设置导航的样式可分为全局设置与局部设置; 1.全局设置 全局设置...
  • iOS导航栏和状态栏

    2018-03-21 15:15:09
    //导航栏是否透明self.navigationController.navigationBar.translucent = NO; 导航栏不透明,主view会向下偏移64pxself....导航栏的属性默认为YES,透明效果并且主view不会偏移//状态栏文字颜色self.navigationCo...
  • 导航栏隐藏情况下,UITableView向下偏移状态栏高度,顶部的约束设为0了,但是UITableView还是向下便宜状态栏的高度,这在计算UITableView的contentOffset时就会很麻烦,如果强行设顶部的约束为负值也不是好的解决...
  • 今天写了UIScrollview的时候突然发现Scrollview的子视图老是默认向下偏移64,马上我就意识到可能是导航的半透明效果导致的(我的视图控制器的上级控制器是盗号控制器),其实就是这个原因。最后我解决了,特此记录...
  • 背景:在做开发的时候经常不经意就出现导航栏遮挡主视图的情况,之前出现这种情况我会先看看View UI Hierarchy,然后把视图的坐标手动调整,例如把视图的y坐标写成64(建议封装成宏,因为有刘海的手机状态栏和导航栏...
  • 自定义ios7标题栏和状态栏 跟大家一样,我一直忙碌的适配我的APP在ios7下的表现。iOS7的最新版本引入了大量的视觉变化。从开发人员的角度来看,导航栏和状态栏是2个最显而易见的变化。状态栏现在是透明/半透明的,...
1 2 3 4 5 ... 20
收藏数 3,213
精华内容 1,285
热门标签
关键字:

11 ios 状态栏偏移