美文网首页app开发程序员
UIBarButtonItem 的左右item距离两边的距离

UIBarButtonItem 的左右item距离两边的距离

作者: 乡水情缘 | 来源:发表于2017-05-05 08:57 被阅读64次

    前提: leftBarButtonItem无法通过frame的x设置item的位置

    这里只是以leftBarButtonItem 为例来说,具体的rightBarButtonItem也是同理
    leftBarButtonItem 的设置分为三种情况
    第一种:直接利用系统的创建
    第二种:自定义的时候采用button
    第三种:自定义的时候使用的是View

    这里主要来说一下第二种和第三种 ,在自定义的情况下如何设置距离左边的距离
    采用button
    一般leftBarButtonItem用UIButton自定义 都会出现图片过右的情况,我们想按钮内容(文字,图片)做偏移
    leftBarButtonItem用UIButton自定义 可通过UIButton中的contentEdgeInsets属性,去实现按钮内容偏移
    或者通过UIButton中的contentHorizontalAlignment属性实现按钮内容的偏移

            UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom];
            [button setTitle:@"返回" forState:UIControlStateNormal];
            button.size = CGSizeMake(70, 30);
    
            // 让按钮内部的所有内容左对齐
            button.contentHorizontalAlignment = UIControlContentHorizontalAlignmentLeft;
            // 让按钮的内容往左边偏移10
            button.contentEdgeInsets = UIEdgeInsetsMake(0, -10, 0, 0);
    
            // 修改导航栏左边的item
            navVC.navigationItem.leftBarButtonItem = [[UIBarButtonItem alloc] initWithCustomView:button];
    

    上面可以完美的实现调整leftBarButtonItem 距离左边的距离,重点来了如果这个时候我们采用的是View 那该有如何实现呢
    庆幸的是 苹果给我们提供了UIBarButtonSystemItemFixedSpace这种item类型来处理.自定义View位置偏移

    UIBarButtonItem *negativeSpacer = [[UIBarButtonItem alloc] initWithBarButtonSystemItem: UIBarButtonSystemItemFixedSpace target:nil action:nil];  
    negativeSpacer.width = -15;  //偏移距离  -向左偏移, +向右偏移
    self.navigationItem.leftBarButtonItems = @[negativeSpacer, [[UIBarButtonItem alloc] initWithCustomView:button]];
    

    想了解更多ios 开发相关知识的朋友,可以关注下面的公众号

    qrcode_for_gh_c3ca4daf0c69_430.jpg

    相关文章

      网友评论

        本文标题:UIBarButtonItem 的左右item距离两边的距离

        本文链接:https://www.haomeiwen.com/subject/imjjtxtx.html