微信小程序 navigationbar怎么配置

微信小程序 navigationbar怎么配置,第1张

微信小程序——配置 以下就是小编对小程序配置的资料进行的系统的整理,希望能对开发者有帮助。 我们使用app.json文件来对微信小程序进行全局配置,决定页面文件的路径、窗口表现、设置网络超时时间、设置多 tab 等。 以下是一个包含了所有配置选项的简单喊敏配置app.json : { "pages": ["pages/index/index","pages/logs/index" ], "window": {"navigationBarTitleText": "Demo" }, "tabBar": {"list": [{ "pagePath": "pages/index/index", "text": "首页"}, { "pagePath": "pages/logs/logs", "text": "日志"}] }, "networkTimeout": {"request": 10000,"downloadFile": 10000 }, "猛差debug": true } app.json 配置项列表 属性类型必填描述pagesArray是设置页面路径windowObject否设置默认页面的窗口表现tabBarObject否设置底部 tab 的表现networkTimeoutObject否设置网络超时时间debugBoolean否设置是否开启 debug 模式 pages 接受一个数组,每一项都是字符串,来指定枝渗皮小程序由哪些页面组成。每一项代表对应页面的【路径+文件名】信息,数组的第一项代表小程序的初始页面。小程序中新增/减少页面,都需要对 pages 数组进行修改。 文件名不需要写文件后缀,因为框架会自动去寻找路径.json,.js,.wxml,.wxss的四个文件进行整合。 如开发目录为: pages/ pages/index/index.wxml pages/index/index.js pages/index/index.wxss pages/logs/logs.wxml pages/logs/logs.js app.js app.json app.wxss 则,我们需要在 app.json 中写 { "pages":["pages/index/index""pages/logs/logs" ] } window 用于设置小程序的状态栏、导航条、标题、窗口背景色。 属性类型默认值描述navigationBarBackgroundColorHexColor#000000导航栏背景颜色,如"#000000"navigationBarTextStyleStringwhite导航栏标题颜色,仅支持 black/whitenavigationBarTitleTextString 导航栏标题文字内容backgroundColorHexColor#ffffff窗口的背景色backgroundTextStyleStringdark下拉背景字体、loading 图的样式,仅支持 dark/light 注:HexColor(十六进制颜色值),如"#ff00ff" 如 app.json : { "window":{"navigationBarBackgroundColor": "#ffffff","navigationBarTextStyle": "black","navigationBarTitleText": "微信接口功能演示","backgroundColor": "#eeeeee","backgroundTextStyle": "light" } } tabBar 如果我们的小程序是一个多 tab 应用(客户端窗口的底部有tab栏可以切换页面),那么我们可以通过 tabBar 配置项指定 tab 栏的表现,以及 tab 切换时显示的对应页面。 tabBar 是一个数组,只能配置最少2个、最多5个 tab,tab 按数组的顺序排序。 属性说明: 属性类型必填默认值描述colorHexColor是 tab 上的文字默认颜色selectedColorHexColor是 tab 上的文字选中时的颜色backgroundColorHexColor是 tab 的背景色borderStyleString否blacktabbar上边框的颜色, 仅支持 black/whitelistArray是 tab 的列表,详见 list 属性说明,最少2个、最多5个 tab 其中 list 接受一个数组,数组中的每个项都是一个对象,其属性值如下: 属性类型必填说明pagePathString是页面路径,必须在 pages 中先定义textString是tab 上按钮文字iconPathString是图片路径,icon 大小限制为40kbselectedIconPathString是选中时的图片路径,icon 大小限制为40kb networkTimeout 可以设置各种网络请求的超时时间。 属性说明: 属性类型必填说明requestNumber否wx.request的超时时间,单位毫秒connectSocketNumber否wx.connectSocket的超时时间,单位毫秒uploadFileNumber否wx.uploadFile的超时时间,单位毫秒downloadFileNumber否wx.downloadFile的超时时间,单位毫秒 debug 可以在开发者工具中开启 debug 模式,在开发者工具的控制台面板,调试信息以 info 的形式给出,其信息有Page的注册,页面路由,数据更新,事件触发 。 可以帮助开发者快速定位一些常见的问题。 page.json 每一个小程序页面也可以使用.json文件来对本页面的窗口表现进行配置。 页面的配置比app.json全局配置简单得多,只是设置 app.json 中的 window 配置项的内容,页面中配置项会覆盖 app.json 的 window 中相同的配置项。 页面的.json只能设置 window 相关的配置项,以决定本页面的窗口表现,所以无需写 window 这个键,如: { "navigationBarBackgroundColor": "#ffffff", "navigationBarTextStyle": "black", "navigationBarTitleText": "微信接口功能演示", "backgroundColor": "#eeeeee", "backgroundTextStyle": "light" } 感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

如何完全自定义NavigationBar

NavigationBar是很常用的一个元素,所以常常需要进行自定义 *** 作,而一种比较直观的方式就是,先定义一个类NavigationBar继承自 UINavigationBar,而这个NavigationBar的内部内容则是比较复杂的了,里面添加我们需要的所有的navigationBar 的样式,而且使得这些view的尺寸都是整个NavigationBar的尺旁正寸,然后再进行内部view的构建就可以了,而需要进行切换的时候就进行这些view之间的显示和隐藏的切换就可以了,最好使用一些动画,前面的文中有提供动画流畅的保证方式,现在新建一个HomeNavigationController 继承自 UINavigationController,并且在这个类的实现中这样 *** 作

@implementation HomeNavigationController

-(instancetype)init

 帆启庆 {

self = [super initWithNavigationBarClass:[Navigationbar class] toolbarClass:nil]

if (self) {

self.delegate = self

}

return self

}

这样的话就将HomeNavigationController的导航栏的样式进行了确定了。而为了能进行子控制器的导航栏的正确显示,最好在HomeNavigationController中声明一个

@protocol SecretPresentableViewController <NSObject>

@optional

- (void)willPresentWithNavigationBar:(Navigationbar *)navigationBar

@end

而那些想要拥有这个导航栏的自控制器只需要实现协议就可以了,而NavigationBar中的多个view的左右按钮以及中间都可以完全的自定义了,而事件 的传递则使用block的方式,态握这里提供其中一个自定义view的h定义方式

@interface HomeNavigationView : UIView

@property(nonatomic, copy) void (^didTapComposeBlock)(void)

@property(nonatomic, copy) void (^didTapNotificationsBlock)(void)

@property(nonatomic, copy) void (^didTapChatBlock)(void)

@property(nonatomic, copy) void (^didTapScrollToTopBlock)(void)

@property(nonatomic, copy) void (^didTapNewThemeTopBlock)(void)

@property (nonatomic, strong) UILabel* titleLabel

@property (nonatomic, strong) UIButton *tipsNewThemeBtn

@property (nonatomic, strong) UIButton *unreadLeftV

@end

而在m文件中只要对按钮添加监听就可以了,例子是

#pragma private

-(void)left:(id)sender

{

if (_didTapNotificationsBlock) _didTapNotificationsBlock()

}

在拥有navigationBar 的控制器中对具体的block进行处理

navigationBar.homeNavigationView.didTapNotificationsBlock = ^{

[self left:nil]

}

而里面使用的这个left:方法则正是这个控制器中的具体的处理方法(push,modal,或者按钮的消失,lable的隐藏等等的点击相应等等),这样的话就实现了自定义bar的同时而且实现了bar和控制器之间的无缝衔接。更加方便的进行自定义的 *** 作,但同时也可以完全实现系统提供bar的所有功能等等,而这个具体的实现过程很有可能就是apple自己内部的实现方式,因为apple很推荐我们使用block而这种bar和viewcontrol的传递消息的方式感觉这是最优秀的了。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12519274.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-26
下一篇 2023-05-26

发表评论

登录后才能评论

评论列表(0条)

保存