[ios]tabbar超过5个后出现的more标签文字修改 以及more、configure界面 修改问题

[ios]tabbar超过5个后出现的more标签文字修改 以及more、configure界面 修改问题

 

建议您先看:http://poolo.iteye.com/blog/1833821 关于view层级关系的 [也就是view tree]

 

简单描述下:

今天开发时候 需要修改more为更多[其实单纯想要修改成中文 直接在项目的info->Localization 改成中文就行了]。在ios开发中当tabbar超过5个(>5)的时候。系统会自动生成一个more标签 标签下标大于等于4就会被放到more页面。

且tab 下的more标签是通过tabbaritems修改的(不信的自己去试试 其他都可以这个不行)。

 

一、修改more tabbar的文字。

那么如果需要修改掉more应该怎么办呢?

 

效果:

思路1:

通过获取tabbarItems 然后进行修改

结果:很有趣的是 只有more这个标签不能正常修改其他都可以。[bageValue却可以]

 

思路2:

根据

 

tabBarController.moreNavigationController.tabBarController.tabBar的路径获取到

UItabvar然后根据subView的层级关系 获得到UITabBarButtonLabel(左边这个东西是uikit里面没有的 直接对NSObject setText);

 

代码如下

 

//
//  ChangeTabMoreUnit.m
//  SmartHome_adpter_2
//
//  Created by liu poolo on 13-3-21.
//  Copyright (c) 2013年 liu poolo. All rights reserved.
//

#import "ChangeTabMoreUnit.h"

@implementation ChangeTabMoreUnit
+(void)changeTabMoreWithTitle:(NSString*) title withVC:(UIViewController*)vc{
    if(vc.tabBarController){
        if(vc.tabBarController.moreNavigationController){
            UITabBar *tb = vc.tabBarController.moreNavigationController.tabBarController.tabBar;
            UIView *tbb=[[tb subviews] lastObject];
            
            UIView *v=[[tbb subviews]objectAtIndex:1];
            NSString* str=title;
            if([str length]>6){//如果不限制 自己删掉这里 
                str=[str substringToIndex:6];
                NSLog(@"传入的title长度超过6  只显示前6个字");
            }
            CGSize sc=[str sizeWithFont:[UIFont systemFontOfSize:10.0f]];
            v.frame=CGRectMake(v.frame.origin.x, v.frame.origin.y, sc.width, v.frame.size.height);
            [[[tbb subviews]lastObject] setText:str];
        }else{
            NSLog(@"传入的UIViewController 必须含有tabBarController与moreNavigationController");
        }
    }else{
        NSLog(@"传入的UIViewController 必须含有tabBarController与moreNavigationController");
    }
}
@end

 

 

二、修改more tabbar的图片。

这个搞起来很复杂。表示搞了半天 还是无法消除掉more的 . . .那个背景。

当然通过层级关系慢慢查可以搞定。

 

三、修改more的navigationBar 

 

通过moreNavigationController.navigationBar就可以修改了

 

.moreNavigationController.navigationBar.barStyle=UIBarStyleBlackOpaque

 

四、修改configure的navigationBar

思路一:这个就麻烦了首先moreNavigationController 是没有提供获取configure那个界面的任何方法,所以通过moreNavigationController方法获取configure的UINavigationBar 失败

思路二:用图层级关系处理。

那么什么时候的window下才有configure呢?

我们看到UITabBarController 有一个UITabBarControllerDelegate 中有一个方法tabBar:willBeginCustomizingItems:此方法在more中点击edit后才会响应。

so我们发现此时是可以获取到configure 的图层级关系的。

所以我们覆写UITabBarController 并且实现它的UITabBarControllerDelegate

并self.delegate = self;

 

以下为实现UITabBarControllerDelegate的tabBar:willBeginCustomizingItems:

#pragma mark UITabBarDelegate Methods

- (void)tabBar:(UITabBar *)tabBar willBeginCustomizingItems:(NSArray *)items {
    AppDelegate *a=(AppDelegate *)[[UIApplication sharedApplication] delegate];
    [a logViewTreeForMainWindow];

    UIView *l2 = [self.view.subviews objectAtIndex:1];
    UINavigationBar *l3_0=[l2.subviews objectAtIndex:0];
    //l3_0代表 configure UINavigationBar
    [l3_0 setBarStyle:UIBarStyleBlack];
    UINavigationItem *rightButton=(UINavigationItem *)[l3_0.subviews objectAtIndex:2];
    //rightButton代表 configure UINavigationBar右侧按钮
    rightButton.title=@"完成";

}

 上面的 objectAtIndex:1 objectAtIndex:0这些的是固定不变的 如果想自己查看为什么在方法体内部执行一次查看当前全部层级关系即可。

其实l2就是整个configure的层级了。爱怎么改怎么改了。

 

 

 

 

 

【CODESYS】-软件Bug与处理方法(20240710更) 【CODESYS】-软件Bug与处理方法(不定期更新) 阅读详情

相关推荐

IOS分页栏TabBar的使用(四)

一般TableBar放置在屏幕的最下方会有很多平级的按钮,用户可以击不同的按钮切换屏幕中显示的视图,TableBar可以使用系统自带的也可以自己继承重写它的方法实现自定义TableBar,今天我们主要讨论系统自带的TableBar的简单使用。       如上图所示,系统自带的TableBar屏幕中最多只可以放置5个,如果超过5个系统会自动生成一个More按钮,会将

ny5168的专栏 824

在x86机器上运行jailhouse

jailhouse jaihouse提供了一个demo ,https://github.com/siemens/jailhouse-images可以用于编译一整套可用的demo。 适用于多个平台。编译过程主要参考https://blog.youkuaiyun.com/weixin_39541632/article/details/110422345 此demo可以生成多个平台所用的操作系统image。 ...

闲人的专栏 3004

iOS开发之实现TabBar中间凸起“+”按钮(自定义TabBar)

参考:http://www.jianshu.com/p/46f61bc7a938,https://github.com/Mringkang/KBCustomCenterTabbar 效果: PS:这里需要用到UIView一个分类的一些属性,参考http://www.cnblogs.com/guitarandcode/p/5758995.html ,图标素材等自行上网找或者自己设计,这里...

weixin_30877181的博客 542

WPF基础系列六:MVVM框架

MVVM框架 文章目录MVVM框架前言一、MVVM框架简介1. 什么是MVVM?2. MVVM的优势3.MVVM的应用场景二、MVVM使用及示例 前言 在WPF开发中,经典的编程模式是MVVM,是为WPF量身定做的模式,该模式充分利用了WPF的数据绑定机制,最大限度地降低了Xmal文件和CS文件的耦合度,也就是UI显示和逻辑代码的耦合度,如需要更换界面时,逻辑代码修改很少,甚至不用修改。 与WinForm开发相比,我们一般在后置代码中会使用控件的名字来操作控件的属性来更新UI,而在WPF中通常是通过

iceberg7012的博客 2万+

AI大模型探索之路-认知篇1-全景透视:揭秘AIGC技术的进化之路

随着人工智能技术的突飞猛进,内容创作方式的发生了革命性的转变;从早期专业人员主导的内容生产,到现如今生成式人工智(AIGC)能创作时代;本篇文章主要讲解AIGC技术的演变历程。

寻道AI,探索AI无限可能! 1646

UITabBarController显示多于5个标签时的如何直接显示视图而非More处理方式

使用UITabBarController多余4个标签时,出现MoreNavigationController,很多开发者想直接显示视图,而不想看到MoreNavigationController。下面说一下比较2的解决办法。呵呵。    UIViewController *viewController_1 = [[UIViewControlleralloc] init];   UIView

u014427812的专栏 3476

【2026年阿里巴巴集团暑期实习- 4月25日-算法岗-第二题- 矩阵计数】(题目+思路+Java&C++&Python解析+在线测试)

摘要: 给定两个非负整数序列a和b,构造n×m矩阵C,其中C[i][j]=a[i]×b[j]。统计矩阵中元素≥k的数量。解法是先对数组b排序,然后对于每个a[i],若k=0则直接累加m;若a[i]=0且k>0则跳过;否则计算需要的最小b[j]值,在排序后的b中使用二分查找确定满足条件的元素数量。时间复杂度为O((n+m)log m),空间复杂度O(1)。代码实现了排序和二分查找的高效组合。

m0_73659489的博客 65

iOS_你不知道的UITabBarController

1、UITabBarController的tabbar item最多可以展示5个子视图,如果超过5个会怎么样呢?       如果超过5个,会如下图这样展示:第5个及之后的子视图会显示在more的选项里,点击去之后是下图所示:这个就像是tableview,我们可以点击任意一个cell,进入到制定的视图里,这是一个导航栏控制器而且在MORE视图里,右上角的edit是一个神奇的功能,点击之后可以任意调...

w582324909的博客 589

商品标签识别系统:基于YOLO系列的深度学习实现

随着零售行业的快速发展和自动化需求的增长,商品标签识别技术变得越来越重要。本文详细介绍了一个完整的商品标签识别系统,该系统基于YOLO系列目标检测算法(包括YOLOv5、YOLOv8和YOLOv10),采用PySide6构建用户界面,并提供完整的训练代码和数据集处理方案。该系统能够准确识别商品标签中的关键信息,如价格、条形码、生产日期等,为零售自动化、库存管理和智能结算提供技术支持。

YOLO 348

AFL源码分析之afl-as.c详细注释

前言 afl-as注释好了,明白了是如何进行插桩的,以及插在哪里 本文主要参考Sakura大佬文章:https://eternalsakura13.com/2020/08/23/afl/ 编写不易,如果能够帮助到你,希望能够点赞收藏加关注哦Thanks♪(・ω・)ノ /* Copyright 2013 Google LLC All rights reserved. Licensed under the Apache License, Version 2.0 (the "License"); y

hollk’s blog 2172

iOS学习笔记 (9) UITabBarController分栏控制器

UITabBarController/分栏控制器/标签栏控制 注】标签栏控制器,是UIKit框架提供的一个容器视图控制器,用于切换相同级别的兄弟视图控制器。iOS允许将导航控制器添加到标签栏控制器中进行管理(事实上这种结构非常常见),但原则上,不推荐将分栏控制器添加到导航控制器中进行管理。 【注】标签栏的高度 49 vc.hidesBottomBarWhenPushed = Y

thatday_csdn 779

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

融云 Global IM UIKit,灵活易用的即时通讯组件设计思路和最佳实践

会话和消息列表的展示样式是需求最多的自定义组件,开发者可以通过 List 提供的注册方法,完全自定义 Cell 的展示样式。 支持 Module 和 Component 的二级重写之外,如文章开头所述,融云 Global IM UIKit 亦对某些通用功能支持一键切换修改。 在支持开发者全球化业务的多样实践中,融云发现有些通用功能也需要跟随业务实现多样化。例如,单群聊自己的头像和昵称是否展示等。

weixin_44764152的博客 1357

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

带 more 按钮的 tab 切换

这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入 欢迎使用Markdown编辑器 你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Mar

kuaizisong的博客 419

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

UITabBarController详解

一. UITabBarController简介 (一). 继承关系 UITabBarController和UINavigationController类似,也继承于UIViewController,也可以轻松地管理多个控制器,轻松完成控制器之间的切换,典型的例子就是QQ、微信等应⽤。 (二). 基本概念 父控制器:通过标签控制器管理多个子控制器,标签控制器就称为父控制器

诠释完美 1万+

iOS 关于tabBar的几处笔记

级别: ★☆☆☆☆ 标签:「iOS」「状态栏」「导航栏」 作者: dac_1033 审校: QiShare团队 1. 创建一个带tabBar的App 一般项目中的App界面框架结构,如下: 本例中创建了一个QiTabBarController继承于UITabBarController,并作为window的rootViewController,则在QiTabBarController中写以下代...

weixin_33806914的博客 235

xcode5 UITabViewController 如何跳过"more"界面

最近项目需要使用UITabBarController, 但发现

Tyler的专栏 1323

ios tabbar插件_iOS之自定义tabBar

在iOS原生的tabBar中,能够实现按钮的点击事件,能够实现视图控制器的切换等,但是在实际工程中,对于tabBar的要求的功能往往是系统自己实现不了的,所以我们这里就需要用到自定义的tabBar了。对于tabBar上展示视图控制器,我们会采用的是在把几个视图控制直接加载到tabBarController上去。这里新建三个视图控制器,由于在一、系统样式ViewController会有其他代码,所以...

weixin_39941721的博客 578

iOS开发-实现自定义Tabbar及tabbar按钮动画效果

INSysTabbar继承UIView,实现tabbarButton效果//代理 @property(nonatomic , strong) UIImage * bgroundImage;//背景图 @property(nonatomic , strong) INSysTabbarShapeView * tabbarBGShapeView;//背景图 @property(nonatomic , strong) UIColor * lineColor;

一名开发者 3233

iOS之自定义tabBar(简便方式)

在此之前写过一篇关于tabBar的自定义的文章https://juejin.im/post/5a3143956fb9a0451705340f ,此前的定制的多半是可以用于tabBar中有一些特殊的按钮,比如有些是超过了tabBar的范围或者是有特殊要求的按钮,而如果只是一些简单的事件,例如就是推出一个控制器等,就像是新浪微博中间的按钮,就单纯是一个发布信息的功能,就不需要那么复杂的定制。下面就介...

weixin_33862514的博客 572

uniapp中多角色导致tabbar过多的解决方式

由于项目时间较紧张,找了很多却没找到特别合适的方法,最后使用了此方式。

嘿嘿~ 1429

JS取得tab设置more的小技巧

function setShuXueZuoJiaYingYu(typeId) {var url = "/dfjb.do?action=listPage&amp;menuName="+typeId+"&amp;fn=学生园地";document.getElementById("shuXueZuoJiaYingYu").href=url;} &lt;div id="menu0" &gt; &

系统运维 174

more,less介绍 ---- 2016-04-26

more命令 more命令是一个基于vi编辑器文本过滤器,它以全屏幕的方式按页显示文本文件的内容,支持vi中的关键字定位操作。more名单中内置了若干快捷键,常用的有H(获得帮助信息),Enter(向下翻滚一行),空格(向下滚动一屏),Q(退出命令)。   该命令一次显示一屏文本,满屏后停下来,并且在屏幕的底部出现一个提示信息,给出至今己显示的该文件的百分比:--More--(XX%)可...

Simon_9527的博客 419

UniApp微信小程序登录不同角色动态设置TabBer(多于5个TabBer页面)

最近工作在用UniApp做项目,上个星期左右这个项目APP端已经做的差不多了,后面接到任务要把这个项目发布小程序版本,一些样式兼容问题处理完后卡在了动态设置TabBer这上面,在app端使用UniApp的api(uni.setTabBarItem(OBJECT)即可完成功能需求),但是这个api在微信小程序端仅支持修改文字图标不支持修改pagePath,然后就开始找各种文章,文档,询问同行朋友等,最终得出大都以下两种解决方案。 方案一:使用微信小程序开发文档中推荐的自定义TabBer 在 app.jso

qq_38088386的博客 7590
上一篇: [ios]coreData 的一些操作
下一篇: [ios]打印ViewTree
iPoolo
博客等级 码龄17年 2粉丝 168原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值