iOS 第11课 标签栏实现类似qq底部的效果

Qt C++智慧农场系统:轻量本地化农业管理实战 智慧农场系统是面向现代农业数字化转型的基础技术载体,其核心在于实现传感器数据采集、实时控制与本地决策闭环。Qt作为跨平台C++ GUI框架,凭借原生串口通信、低资源占用和静态编译能力,成为边缘端农业嵌入式系统的高性价比选择;C++则保障了高频传感器读取与规则引擎执行的确定性性能。该技术组合显著降低对云服务、稳定网络和专业运维的依赖,适用于大棚、合作社等弱网离线场景,支撑温湿度监控、自动灌溉、虫情告警等关键农事应用。本文聚焦真实可部署的Qt C++智慧农场实践方案,覆盖硬件对接、跨平台适配、SQLite高效写 阅读详情




0: 首先还是通过纯的代码来实现

0:删除3个文件ViewController.h,ViewController.m,Main.storyboard

1:修改点击左边的蓝色按钮,然后选择general-》developer info-》main interface ,将这个main interface 晴空


1: 然后生成四个视图控制器First Second Third Fourth,和一个类别

FirstViewController:

//
//  FirstViewController.m
//  EllevenBiaoqianLan
//
//  Created by 千雅爸爸 on 16/10/27.
//  Copyright © 2016年 kodulf. All rights reserved.
//

#import "FirstViewController.h"
#import "FourthViewController.h"

@interface FirstViewController ()

@end

@implementation FirstViewController

- (void)viewDidLoad {
    [super viewDidLoad];
    // Do any additional setup after loading the view.
    [self setTitle:@"First"];
    [self.view setBackgroundColor:[UIColor yellowColor]];
    NSLog(@"first: %s",__func__);//打印方法名字

    //添加一个push按钮,然后点击之后让地步的导航栏也不显示
    self.navigationItem.rightBarButtonItem =[[UIBarButtonItem alloc] initWithTitle:@"PUSH" style:UIBarButtonItemStylePlain target:self action:@selector(pushController)];

}

-(void)pushController{
    FourthViewController *fourthVC = [[FourthViewController alloc]init];
    //隐藏下面的标签栏
    [fourthVC setHidesBottomBarWhenPushed:YES];
    
    [self.navigationController pushViewController:fourthVC animated:YES];
}

- (void)didReceiveMemoryWarning {
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}

/*
#pragma mark - Navigation

// In a storyboard-based application, you will often want to do a little preparation before navigation
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
    // Get the new view controller using [segue destinationViewController].
    // Pass the selected object to the new view controller.
}
*/

@end

SecondViewController

//
//  SecondViewController.m
//  EllevenBiaoqianLan
//
//  Created by 千雅爸爸 on 16/10/27.
//  Copyright © 2016年 kodulf. All rights reserved.
//

#import "SecondViewController.h"

@interface SecondViewController ()

@end

@implementation SecondViewController

- (void)viewDidLoad {
    [super viewDidLoad];
    // Do any additional setup after loading the view.
    [self setTitle:@"Second"];
    [self.view setBackgroundColor:[UIColor redColor]];
    NSLog(@"second: %s",__func__);//打印方法名字

}

- (void)didReceiveMemoryWarning {
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}

/*
#pragma mark - Navigation

// In a storyboard-based application, you will often want to do a little preparation before navigation
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
    // Get the new view controller using [segue destinationViewController].
    // Pass the selected object to the new view controller.
}
*/

@end


ThirdViewController

//
//  ThirdViewController.m
//  EllevenBiaoqianLan
//
//  Created by 千雅爸爸 on 16/10/27.
//  Copyright © 2016年 kodulf. All rights reserved.
//

#import "ThirdViewController.h"

@interface ThirdViewController ()

@end

@implementation ThirdViewController

- (void)viewDidLoad {
    [super viewDidLoad];
    // Do any additional setup after loading the view.
    [self setTitle:@"Third"];
    [self.view setBackgroundColor:[UIColor blueColor]];
    NSLog(@"third: %s",__func__);//打印方法名字

}

- (void)didReceiveMemoryWarning {
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}

/*
#pragma mark - Navigation

// In a storyboard-based application, you will often want to do a little preparation before navigation
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
    // Get the new view controller using [segue destinationViewController].
    // Pass the selected object to the new view controller.
}
*/

@end


FourthViewController

//
//  FourthViewController.m
//  EllevenBiaoqianLan
//
//  Created by 千雅爸爸 on 16/10/27.
//  Copyright © 2016年 kodulf. All rights reserved.
//

#import "FourthViewController.h"

@interface FourthViewController ()

@end

@implementation FourthViewController

- (void)viewDidLoad {
    [super viewDidLoad];
    // Do any additional setup after loading the view.
    [self setTitle:@"Fourth"];
    [self.view setBackgroundColor:[UIColor brownColor]];
}

- (void)didReceiveMemoryWarning {
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}

/*
#pragma mark - Navigation

// In a storyboard-based application, you will often want to do a little preparation before navigation
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
    // Get the new view controller using [segue destinationViewController].
    // Pass the selected object to the new view controller.
}
*/

@end


UIImage+OriginalImage

//
//  UIImage+OriginalImage.h
//  EllevenBiaoqianLan
//
//  Created by 千雅爸爸 on 16/10/27.
//  Copyright © 2016年 kodulf. All rights reserved.
//

#import <UIKit/UIKit.h>
//默认上面的图片都是做过了毛玻璃的效果的,如果不想要毛玻璃的效果,那么久直接

@interface UIImage (OriginalImage)
+(UIImage *) originalImageName:(NSString *)name;
@end

//
//  UIImage+OriginalImage.m
//  EllevenBiaoqianLan
//
//  Created by 千雅爸爸 on 16/10/27.
//  Copyright © 2016年 kodulf. All rights reserved.
//

#import "UIImage+OriginalImage.h"

@implementation UIImage (OriginalImage)
//默认上面的图片都是做过了毛玻璃的效果的,如果不想要毛玻璃的效果,那么久直接

+(UIImage *) originalImageName:(NSString *)name{
    return [[UIImage imageNamed:name]imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];
}

@end


2: 然后修改app delegate.m文件

//
//  AppDelegate.m
//  EllevenBiaoqianLan
//
//  Created by 千雅爸爸 on 16/10/27.
//  Copyright © 2016年 kodulf. All rights reserved.
//

#import "AppDelegate.h"
#import "FirstViewController.h"
#import "SecondViewController.h"
#import "ThirdViewController.h"
//默认上面的图片都是做过了毛玻璃的效果的,如果不想要毛玻璃的效果,那么久直接
//导入我们创建的分类
#import "UIImage+OriginalImage.h"

@interface AppDelegate ()

@end

@implementation AppDelegate


- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
    //导航栏控制器是一种栈的形式,
    //标签栏控制器,就有点像是android 里面的ViewPager和RadioGroup结合的形式,但是又是不同的,标签栏控制器里面的组件,例如有导航栏控制器,有其它的,会都显示只不过是有的在前面,有的在后面,相当于是并列的显示,请查看说明的图
    //我们一板是将导航栏控制器设置为标签栏控制器的子控制器
    //首先创建四个控制器的类,然后是一个UIImage+OriginalImage的分类
    
    
    [self setWindow:[[UIWindow alloc]initWithFrame:[UIScreen mainScreen].bounds]];
    [self.window makeKeyAndVisible];
    UITabBarController *tabBarController = [[UITabBarController alloc] init];
    [tabBarController.view setBackgroundColor:[UIColor whiteColor]
     ];
    [self.window setRootViewController:tabBarController];
    
    FirstViewController *firstVC=[[FirstViewController alloc]init];
    //把first先放在navigationcontroler上面,然后再将navigationcontroller添加到
    firstVC.tabBarItem.title = @"first";//地下的说明的文字
    firstVC.tabBarItem.image = [UIImage imageNamed:@"64"];//默认的图片
    //firstVC.tabBarItem.selectedImage =[UIImage imageNamed:@"cat"];//选中后的效果
    //默认上面的图片都是做过了毛玻璃的效果的,如果不想要毛玻璃的效果,那么久直接
    //这里的选中和补选中的显示就和android 中的selector很像
    firstVC.tabBarItem.selectedImage =[UIImage originalImageName:@"cat"];//选中后的效果
    UINavigationController *navigationController = [[UINavigationController alloc]initWithRootViewController:firstVC];
    
    //直接复制粘贴上面的first 生成second third
    SecondViewController *secondVC = [[SecondViewController alloc]init];
    secondVC.tabBarItem.title =@"second";
    secondVC.tabBarItem.image = [UIImage imageNamed:@"64"];
    secondVC.tabBarItem.selectedImage=[UIImage originalImageName:@"cat"];
    UINavigationController *secondNavigationController = [[UINavigationController alloc]initWithRootViewController:secondVC];
    
    ThirdViewController *thirdVC = [[ThirdViewController alloc]init];
    thirdVC.tabBarItem.title = @"third";
    thirdVC.tabBarItem.image =[UIImage imageNamed:@"64"];
    thirdVC.tabBarItem.selectedImage = [UIImage originalImageName:@"cat"];
    UINavigationController *thirdNavigationController = [[UINavigationController alloc]initWithRootViewController:thirdVC];
    
    //还可以给tabbar 设置背景图片和颜色
    [tabBarController.tabBar setBackgroundImage:[UIImage imageNamed:@"green2"]];
    //[tabBarController.tabBar setBackgroundColor:[UIColor greenColor]];
    
    //统一设置字体的大小
    [[UITabBarItem appearance] setTitleTextAttributes:@{NSFontAttributeName:[UIFont systemFontOfSize:13]} forState:UIControlStateNormal];
    [tabBarController setViewControllers:@[navigationController,secondNavigationController,thirdNavigationController]];
    //默认的tabbar选择的是第一个被加入到数组中的
    //懒加载的方式,用到哪个就去加在哪个,而且一旦加载了不会轻易的被回收
    //但是如果出现内存警告了,那么系统会优先处理掉那些当前用不到的界面
    
    // Override point for customization after application launch.
    return YES;
}

- (void)applicationWillResignActive:(UIApplication *)application {
    // Sent when the application is about to move from active to inactive state. This can occur for certain types of temporary interruptions (such as an incoming phone call or SMS message) or when the user quits the application and it begins the transition to the background state.
    // Use this method to pause ongoing tasks, disable timers, and throttle down OpenGL ES frame rates. Games should use this method to pause the game.
}

- (void)applicationDidEnterBackground:(UIApplication *)application {
    // Use this method to release shared resources, save user data, invalidate timers, and store enough application state information to restore your application to its current state in case it is terminated later.
    // If your application supports background execution, this method is called instead of applicationWillTerminate: when the user quits.
}

- (void)applicationWillEnterForeground:(UIApplication *)application {
    // Called as part of the transition from the background to the inactive state; here you can undo many of the changes made on entering the background.
}

- (void)applicationDidBecomeActive:(UIApplication *)application {
    // Restart any tasks that were paused (or not yet started) while the application was inactive. If the application was previously in the background, optionally refresh the user interface.
}

- (void)applicationWillTerminate:(UIApplication *)application {
    // Called when the application is about to terminate. Save data if appropriate. See also applicationDidEnterBackground:.
}

@end







ios-仿QQ个人中心标签选择.zip 仿QQ个人中心标签选择 立即下载

相关推荐

基于FPGA的PCIe核系列:FPGA root模式生成工程例子分析(1)

一、 PCIE系统架构 1.1 PCIE分层结构 PCIE结构 1.2 TLP包 四种TLP类型。 Memory (内存空间操作) IO (IO空间操作) Configuration (配置操作) Message (信息操作) 四种类型TLP,如果有需要响应,称为Non-Posted TLP,如果没有需要响应,称为Posted TLP。 TLP包类型 1.2.1 TLP结构 TLP数据格式 1.2.2 Header各个字段的含义 Header格式 ...

huangshanhu的博客 3432

模仿手机QQ底部导航栏Icon拖拽效果

模仿手机QQ底部导航栏Icon拖拽效果 https://github.com/binbin1990/QQNaviView-1

binbin960211892的博客 425

S7-1200五轴伺服系统PLC控制方案与调试技巧

工业自动化领域中,多轴伺服控制是实现精密加工的核心技术。基于PROFINET实时通信协议和PLCopen运动控制标准,现代PLC(如西门子S7-1200)能够实现多轴高精度同步控制。其技术原理是通过等时同步模式确保各轴运动的时序一致性,结合PID调节和电子齿轮比实现位置闭环。这种方案在数控机床、3D打印等场景具有重要应用价值。本文以五轴联动系统为例,详细解析了S7-1200与V90伺服驱动器的硬件组态方案,包括PROFINET环网配置和IRT同步设置。在软件层面,重点介绍了基于TIA Portal的工艺对象

weixin_34332905的博客 414

仿qq底部Tab导航

本篇博客主要实现以下效果: 使用FragmentTabHost实现qq底部Tab切换 使用RadioGroup和RadioButton实现仿qq底部切换 使用RadioGroup和ViewPager 实现可以滑动切换的仿qq底部Tab切换 解决Fragment多次实例化的几种方案 Fragemnt的懒加载(网上很多人称之为Fragemnt的最优加载) 效果图老规矩,废话 不多说,先看效果图

徐公,微信公众号同名 3102

基于Isaac Gym与PPO算法的机械臂抓取任务仿真与强化学习实战(附完整代码与训练策略)

本文详细介绍了基于Isaac Gym与PPO算法的机械臂抓取任务仿真与强化学习实战。通过环境搭建、PPO算法实现、奖励函数设计等核心环节的优化,结合完整代码与训练策略,显著提升机械臂抓取效率与成功率。特别适合开发者快速掌握强化学习在机器人控制领域的应用。

weixin_29256771的博客 599

Unity ECS 之 Entitas 的简单介绍,插件下载、导入,和简单使用(一篇文入门搞懂ECS是什么)

Unity ECS 之 Entitas 的简单介绍,插件下载、导入,和简单使用(一篇文入门搞懂ECS是什么) 目录 Unity ECS 之 Entitas 的简单介绍,插件下载、导入,和简单使用(一篇文入门搞懂ECS是什么) 一、简单介绍 二、一些专有项简介 Entity Context Group Collector Matcher System Feature 三、注意实现 四、ECS 的下载 Github 上下载 Unity Asset Store 中下载 U...

仙魁XAN 7779

iOS纯代码实现界面建立、跳转、导航栏(无storyboard、无nib)(Objective-C)

如今的iOS开发,已经比以前有了很大的简便,尤其是界面设计方面。主要是因为使用了nib文件和storyboard。但是作为程序员,我们需要挑战一下自己,如果没有nib文件和storyboard,我们怎么来构建一个应用。 (1)新建一个iOS项目,直接删除Main.storyboard文件,然后在下面选项中删除Main... . (2)在AppDelegate.m中实现如下: #im

乞力马扎罗的雪CYF的博客 8601

拆开一个烧坏的IGBT模块,手把手教你识别过压、过流、过温的“案发现场”

本文详细解析了IGBT模块失效分析的实战技巧,通过观察铝层熔化纹路、焊锡溢出形态等物理痕迹,手把手教你识别过压、过流、过温的典型失效模式。文章提供了从基础工具包到现场快速诊断的完整流程,帮助工程师精准定位IGBT模块失效的根本原因。

weixin_30655569的博客 424

导航栏控制器和标签栏控制器(UINavigationController和UITabBarController)混用

很多时候,在UI设计方面同时需要使用导航控制器和标签栏控制器,这时,需要掌握如何设计结合使用这两种不同控制器。比如手机QQ,程序有三个标签栏(分别为消息、联系人、动态),同时在选择某个联系人或者会话时,会进入聊天的子页面,因此这里同时使用到了标签栏控制器和导航控制器。 我目前所知道有以下方法可实现上述的结合使用效果。 根视图是标签栏控制器,然后每页标签栏又有一个根视图控制器为导航栏

qq_27103099的专栏 733

数据结构课程设计C/C++版--美团餐馆预定信息的管理与分析7 8

本关任务:编写一个能查询预定的程序。输入餐馆名称,查询用户账号为当前登录用户且餐馆名称为当前输入餐馆名称的结点信息,并输出其预定时间。本关任务:编写一个能查看预定的程序。创建链队列,从文件order.txt中读取数据,依次进入链队列中。遍历链队列,筛选出用户账号为当前登录用户的结点信息,并依次输出相应的餐馆名称和预定时间。烤肉刘老北京炙子烤肉(四道口店) 11月20日晚餐 0。外婆家(清河华润五彩城店) 12月12日午餐 0。甜鸭梨烤鸭店(农大店) 12月5日晚餐 0。鼎坤朋湘菜馆 12月8日晚餐 0。

m0_62222486的博客 1339

优秀的 Verilog/FPGA开源项目介绍(一)-PCIe通信

优秀的 Verilog/FPGA开源项目介绍(一)-PCIe通信今天开始会陆续介绍一些优秀的开源项目,项目基本都是和FPGA或HDL相关的。对于一些找工作或者急需项目经验的人来说,这些项目...

OpenFPGA的博客 8117

iOS11缩小界面导航栏与标签栏异常的问题

到底是在什么情况下出现怎么样的异常? 几个月之前自己尝试封装了一个仿QQ抽屉效果的轮子,相比较目前常见的抽屉框架优势还是比较明显的,用的人也慢慢的多起了来,现在基本已经稳定了。如果有兴趣可以打开

weixin_34212189的博客 268

FPGA 学习笔记:Vivado 2020.2 MicroBlaze MIG 测试 DDR3 篇四

FPGA 学习笔记:Vivado 2020.2 MicroBlaze MIG 测试 DDR3 篇四

坚韧与专注 2160

ios 代码设置控件宽高比_2020年全网最全:iOS+Android设计规范及适配总结

iOS设计规范苹果自2007年1月9日正式发布iPhone到目前为止的iPhone 12 Pro Max,已经历了十四代产品。以下为苹果手机历代产品明细:一代:iPhone二代:iPhone 3G三代:iPhone 3GS四代:iPhone 4五代:iPhone 4s六代:iPhone 5七代:iPhone 5s、iPhone 5c八代:iPhone 6、iPhone 6 Plus九代:...

weixin_30241053的博客 1134

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

xcode 配置wechat_友盟微信、QQ等分享提示未验证应用配置

确认微信App版本是否支持Universal Links配置我们App的苹果Universal Links请按照以下步骤将您的应用和网站相关联以获取:将添加Associated Domains Entitlement到您的应用。使用服务前缀包含您的应用程序将支持的所有域。请参阅添加关联的域权利。将Apple App Site Association文件添加到您的网站。请参阅添加Apple App ...

weixin_39888082的博客 536

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

ios 探探编辑页图片拖动_nuxt+vue仿微信/探探界面|nuxt聊天实例

最近趁着空闲时间给自己充充电,捣鼓学习了下Nuxt.js框架并开发了一个聊天项目NuxtChat。如上图:一些演示效果片段。emmm~不错哟项目介绍基于nuxt.js+vue.js+vuex+vant+node等技术构架开发的仿微信聊天App界面实例。实现了类似探探卡片滑动效果、消息/表情发送、图片/视频预览、下拉刷新/长按弹框、红包/朋友圈等功能。技术栈使用技术:nuxt.js+v...

weixin_39903571的博客 367

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

android安卓源码海量项目合集打包-1

下载地址 最后更新共计113个分类5177套源码29.2 GB。 卷 新加卷 的文件夹 PATH 列表 卷序列号为 00000200 5E7A:7F30 F:. ├─前台界面 │ ├─3D标签云卡片热门 │ │ Android TagCloudView云标签的灵活运用.rar │ │ Android 实现 标签 拖动 改变位置.rar │ │ android 流式布局和热门标签.zip │ │ ...

chenhao0568的专栏 15万+

UI进阶--UITabBarController简单介绍

UITabBarController跟UINavigationController类似,UITabBarController也可以轻松地管理多个控制器,轻松完成控制器之间的切换,典型例子就是QQ、微信等应用。UITabBarController简单介绍中也有说过,为了便于管理控制器,iOS提供了2个比较特殊的控制器:UITabBarController控制器以及UINavigationContro...

weixin_30263073的博客 97

app自定义图标 vue_nuxt+vue仿微信/探探界面|nuxt聊天实例

最近趁着空闲时间给自己充充电,捣鼓学习了下Nuxt.js框架并开发了一个聊天项目NuxtChat。如上图:一些演示效果片段。emmm~不错哟项目介绍基于nuxt.js+vue.js+vuex+vant+node等技术构架开发的仿微信聊天App界面实例。实现了类似探探卡片滑动效果、消息/表情发送、图片/视频预览、下拉刷新/长按弹框、红包/朋友圈等功能。技术栈使用技术:nuxt.js+v...

weixin_35911221的博客 579

PHP手机深色模式,哪些手机深色模式比较好?六大主流品牌手机深色模式对比介绍...

三星的One UI 2.0的黑暗模式也是可以设置是否将黑暗模式应用至壁纸的,另外还有自适应颜色过滤器设置,可以在日出和日落之间启动护眼模式,整体设计还是比较贴心的。在颜色方面,三星开启黑暗模式之后整体对比度会有一定程度的降低,大面积黑色的铺设让发光的部分大幅减少,使用时眼睛舒适度会有提升。iPhone 11 Pro Max深色模式前后对比iPhone 的深色模式在iOS 13中首次登场,并且此功能...

weixin_32632831的博客 685

2月份Github上最热门的Java开源项目

来源丨开源最前线(ID:OpenSourceTop)猿妹整编https://mp.weixin.qq.com/s/MybcyjGWjSrDINkTcN...

<sdffdsfsdfdfs>sfsfsfsdfsdffds</sdfsDS>Fsd 237

音乐应用基于HarmonyOS API 24将可复用的 UI 片段封装为 Builder 方法,类似于其他框架中的「渲染函数」或「局部模板」,在保持组件粒度灵活

本文将对一个完整的 HarmonyOS ArkTS 班级管理助手应用进行逐段源码深度剖析。该应用面向中小学班主任或班级管理者的日常教务场景,将学生信息管理、课程表展示、考勤记录追踪、成绩统计分析四大核心功能模块统一收纳在一个 入口组件中,通过底部 进行模块切换。采用单文件架构(single-file architecture),将数据模型层、常量配置层、Mock 数据工厂层、业务计算函数层与 UI 渲染层全部内聚于同一编译单元内,这种组织方式在中小型 HarmonyOS 应用中非常常见,既能保证代码的可

2301_79516720的博客 101

UI设计中的小元素总结

  在UI界面的设计当中,有很多“小元素”发挥着十分重要的作用。有些元素我们已经司空见惯;有些被设计师们玩儿出了新花样。在使用了一些产品后,我对这些“小元素”进行了梳理总结。希望其中的一些好的、有趣的设计能对大家有所帮助。   对于“小元素”的这个说法还是有些太笼统,我又把它们分为大致三个部分:   提示类元素   功能类元素   视觉类元素   一、提示类   “提示类”顾名思义,对于我们有提示作用的或是有引导帮助作用的都可以归为此类。那么我最先想到的,应该就是让人又爱又恨的“小红点”了。

Mr_GuoPengFei的博客 2893
上一篇: PDA扫描 Geenk scan 的方法列表
下一篇: Android Studio如何删除module
千雅爸爸
博客等级 码龄18年 292粉丝 639原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值