文档章节

iOS --自定义导航栏

张向坤
 张向坤
发布于 2016/02/23 15:11
字数 231
阅读 14
收藏 1

自定义导航栏 JPNavigationBar,继承UINavigationBar

  • 实现统一设置导航栏左右按钮偏移量距离屏幕

  • 方案一:自定义左右导航栏按钮,判断如果是左右按钮,然后修改左右按钮的frame

#import "JPNavigationBar.h"#import "JPNavigationLeftItem.h" // 自定义类继承UIButton#import "JPNavigationRightItem.h" // 自定义类继承UIButton#import "UIView+Frame.h"  // 分类,快速修改frame#define KMargin 8@implementation JPNavigationBar- (void)layoutSubviews{
    [super layoutSubviews];    for (UIView *view in self.subviews) {        // 1、设置导航左边按钮的间距
        if ([view isKindOfClass:[JPNavigationLeftButton class]]) {
            view.x = KMargin;
        }        // 2、设置导航按钮右边按钮的间距
        if ([view isKindOfClass:[JPNavigationRightButton class]]) {
            view.x = self.width - KMargin - view.width;
        }
    }
  • 方案二:通过frame判断,导航栏左右按钮,然后修改左右按钮的frame

#import "JPNavigationBar.h"@implementation JPNavigationBar/**
 *  调整子控件布局
 */- (void)layoutSubviews
{
    [super layoutSubviews];    for (UIButton *button in self.subviews) {        if (![button isKindOfClass:[UIButton class]]) continue;        if (button.centerX < self.width * 0.5) { // 左边的按钮
            button.x = 0;
        } else if (button.centerX > self.width * 0.5) { // 右边的按钮
            button.x = self.width - button.width;
        }
    }
}@end


© 著作权归作者所有

张向坤
粉丝 0
博文 27
码字总数 44036
作品 0
朝阳
项目经理
私信 提问
定制iOS 7中的导航栏和状态栏

由于种种原因,申请了一个开源中国的帐号,也许会由于我的不耐心,不会亲自去一步步的写博文,但准备把自己看到的好的,都转载过来,就当时资源的存储,也算是一种推广吧。 iOS 7 教程:定制...

谁家的阿毛
2013/11/21
0
0
小程序自定义导航栏适配(完美版)

1、发现问题 小程序页面自定义导航栏功能已经开放有些日子了(还不知道这个功能的可以先>>了解一下),这极大的提升了小程序开发的自由度,相信不少小伙伴已经使用过这个功能,同时也相信不少小...

04/01
0
0
IOS学习,最简单的表格应用程序,学习,列出博客

IOS编程浅蓝教程,这是博客地址http://www.cnblogs.com/haichao/category/425378.html IOS编程浅蓝教程:锲子 IOS编程浅蓝教程(一)先决条件:开始iOS编程的必要准备 IOS编程浅蓝教程(二) Hel...

andy521zhu
2015/01/17
0
0
最新版 Firefox for iOS 改进了用户体验

去年年底,当 Mozilla 推出了 iOS 版的 Firefox 时,得到了巨大的市场反响和数以百万计的下载量。许多 Firefox 的用户欣喜若狂,因为他们可以在iPhone 或 iPad上使用他们喜欢的浏览器了。今天...

火狐Firefox
2016/07/29
2.7K
10
iOS 7:用代码解决视图控制器的View整体上移问题

如果你准备将你的老的 iOS 6 app 迁移到 iOS 7 上,那么你必须注意了。当你的老的 app 在 iOS 7 设备上运行时,所有ViewController 的视图都整体上移了,因为 iOS 7 把整个屏幕高度(包括状态...

mingxun
2014/06/09
0
0

没有更多内容

加载失败,请刷新页面

加载更多

思维导图XMind 8 Pro 绿化方法(附序列号)

按部就班: Step 1 -全新下载最新版本的 Xmind 8(注必须是英文官方的版本,中文代{过}{滤}理网站的版本修改过,无法使用pj); Step 2 -安装完毕后,点击文末的下载按钮下载pj补丁文件包,将...

一只小青蛙
今天
6
0
数据结构(ER数据库)设计规范

表命名规范 表命名的规则分为3个层级,层级之间通过_分割,例如b_r_identity、d_l_identity。规约为: [leavel]_[type]_[name] [leavel] 表示数据库表的层级和功能,分为: s:业务无关的系统...

随风溜达的向日葵
今天
5
0
阿里Sentinel控制台源码修改-对接Apollo规则持久化

https://github.com/alibaba/Sentinel/wiki/%E5%9C%A8%E7%94%9F%E4%BA%A7%E7%8E%AF%E5%A2%83%E4%B8%AD%E4%BD%BF%E7%94%A8-Sentinel 动态规则扩展 https://github.com/alibaba/Sentinel/wiki......

jxlgzwh
昨天
4
0
在Linux系统中创建SSH服务器别名

如果你经常通过 SSH 访问许多不同的远程系统,这个技巧将为你节省一些时间。你可以通过 SSH 为频繁访问的系统创建 SSH 别名,这样你就不必记住所有不同的用户名、主机名、SSH 端口号和 IP 地...

老孟的Linux私房菜
昨天
10
0
高德API入门教程

项目需求 1、实现打开地图就能定位到中心显示标注点 2、点击标注显示保利可爱岛的详细信息 3、实现导航功能 <!doctype html><html><head> <meta charset="utf-8"> <meta http-......

我叫小糖主
昨天
11
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部