- 浏览: 2195623 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (1240)
- mac/IOS (287)
- flutter (1)
- J2EE (115)
- android基础知识 (582)
- android中级知识 (55)
- android组件(Widget)开发 (18)
- android 错误 (21)
- javascript (18)
- linux (70)
- 树莓派 (18)
- gwt/gxt (1)
- 工具(IDE)/包(jar) (18)
- web前端 (17)
- java 算法 (8)
- 其它 (5)
- chrome (7)
- 数据库 (8)
- 经济/金融 (0)
- english (2)
- HTML5 (7)
- 网络安全 (14)
- 设计欣赏/设计窗 (8)
- 汇编/C (8)
- 工具类 (4)
- 游戏 (5)
- 开发频道 (5)
- Android OpenGL (1)
- 科学 (4)
- 运维 (0)
- 好东西 (6)
- 美食 (1)
最新评论
-
liangzai_cool:
请教一下,文中,shell、C、Python三种方式控制led ...
树莓派 - MAX7219 -
jiazimo:
...
Kafka源码分析-序列5 -Producer -RecordAccumulator队列分析 -
hp321:
Windows该命令是不是需要安装什么软件才可以?我试过不行( ...
ImageIO读jpg的时候出现javax.imageio.IIOException: Unsupported Image Type -
hp321:
Chenzh_758 写道其实直接用一下代码就可以解决了:JP ...
ImageIO读jpg的时候出现javax.imageio.IIOException: Unsupported Image Type -
huanghonhpeng:
大哥你真强什么都会,研究研究。。。。小弟在这里学到了很多知识。 ...
android 浏览器
如今很多应用已经不再局限于点击按钮触发事件来进行视图之间切换,为迎合给予用户更好体验,体现iOS系统极佳用户体验,使用手势来进行各个视图之间切换,用户至于一个大拇指在屏幕中央就可浏览到很多信息;
关于 RNSwipeViewController: https://github.com/rnystrom/RNSwipeViewController
RNSwipeViewController是别人已经写好的一个ViewController容器,剩下我们要做的就是把自己的视图容器放到这个容器中进行管理。
首先学习 RNSwipeViewController里面的Demo
1.创建一个Single View Application工程,next,勾选 Use Storyboards,Use Automatic Reference Counting
2.将RNSwipeViewController拖入新建到工程,添加QuartzCore.framework
3.新建四个类CenterViewController、LeftViewController、RightViewController、BottomViewController,继承UIViewController类
4.打开StoryBoard,从库里拖入四个ViewController视图控制器到StoryBoard里面,选中一个视图控制器设置类名和Storyboard ID,其他三个类似
5.在ViewController.h将加入#import "RNSwipeViewController.h"并将继承类改为RNSwipeViewController,在ViewDidLoad方法中
如此我们就完成三个视图之间手势交互,首先出现的视图作为主视图,其他试图再是在它上面进行运动,手指向左滑右侧视图出现,向右滑动出现左视图,向上滑动出现底部视图出现
平常我们在构建一个带有XIB视图控制类的时候,初始化一般这样
CenterViewController *centerVC = [[CenterViewController alloc] initWithNibName:@"CenterViewController" bundle:nil];
但是在StoryBoard中,视图的Storyboard ID 成了这是视图的唯一标示,再给一个视图所属类时,设定好该视图的Storyboard ID,进行初始化时CenterViewController *centerView = [self.storyboard instantiateViewControllerWithIdentifier:@"CenterViewController"];
这个类库中也提供按钮点击进行视图交互方法,同时也设置视图显示宽度的属性,在类库实现的里面视图宽度有默认值
_leftVisibleWidth = 200.f;
_rightVisibleWidth = 200.f;
_bottomVisibleHeight = 300.0f;
再此我们可以在自己类里修改这个属性,根据自己需求,作图下设置
ViewController.m
我们再给导航栏上添加两个按钮,在CenterViewController类中,包含#import "UIViewController+RNSwipeViewController.h"
接着连个按钮事件,为了显示明显我们可以设置一下三个视图背景颜色
RNSwipeViewController有一个协议方法,可以监听当前视图显示百分比(0~100)
RNSwipeViewController have a protocol method, can monitor the current view shows percentage (0 ~ 100)
协议方法,当左侧视图完全显示时弹出一个alertView
注:这个第三方库有个缺点,我主类继承的UITabBarController,没办法改成RNSwipeViewController,所以我没用这种
关于 RNSwipeViewController: https://github.com/rnystrom/RNSwipeViewController
RNSwipeViewController是别人已经写好的一个ViewController容器,剩下我们要做的就是把自己的视图容器放到这个容器中进行管理。
首先学习 RNSwipeViewController里面的Demo
1.创建一个Single View Application工程,next,勾选 Use Storyboards,Use Automatic Reference Counting
2.将RNSwipeViewController拖入新建到工程,添加QuartzCore.framework
3.新建四个类CenterViewController、LeftViewController、RightViewController、BottomViewController,继承UIViewController类
4.打开StoryBoard,从库里拖入四个ViewController视图控制器到StoryBoard里面,选中一个视图控制器设置类名和Storyboard ID,其他三个类似
5.在ViewController.h将加入#import "RNSwipeViewController.h"并将继承类改为RNSwipeViewController,在ViewDidLoad方法中
- (void)viewDidLoad { [super viewDidLoad]; CenterViewController *centerView = [self.storyboard instantiateViewControllerWithIdentifier:@"CenterViewController"]; UINavigationController *centerNav = [[UINavigationController alloc] initWithRootViewController:centerView]; centerView.title =@"Center"; self.centerViewController = centerNav; self.leftViewController = [self.storyboard instantiateViewControllerWithIdentifier:@"LeftViewController"]; self.rightViewController = [self.storyboard instantiateViewControllerWithIdentifier:@"RightViewController"]; self.bottomViewController = [self.storyboard instantiateViewControllerWithIdentifier:@"BottomViewController"]; }
如此我们就完成三个视图之间手势交互,首先出现的视图作为主视图,其他试图再是在它上面进行运动,手指向左滑右侧视图出现,向右滑动出现左视图,向上滑动出现底部视图出现
平常我们在构建一个带有XIB视图控制类的时候,初始化一般这样
CenterViewController *centerVC = [[CenterViewController alloc] initWithNibName:@"CenterViewController" bundle:nil];
但是在StoryBoard中,视图的Storyboard ID 成了这是视图的唯一标示,再给一个视图所属类时,设定好该视图的Storyboard ID,进行初始化时CenterViewController *centerView = [self.storyboard instantiateViewControllerWithIdentifier:@"CenterViewController"];
这个类库中也提供按钮点击进行视图交互方法,同时也设置视图显示宽度的属性,在类库实现的里面视图宽度有默认值
_leftVisibleWidth = 200.f;
_rightVisibleWidth = 200.f;
_bottomVisibleHeight = 300.0f;
再此我们可以在自己类里修改这个属性,根据自己需求,作图下设置
ViewController.m
- (void)viewDidLoad { [super viewDidLoad]; CenterViewController *centerView = [self.storyboard instantiateViewControllerWithIdentifier:@"CenterViewController"]; UINavigationController *centerNav = [[UINavigationController alloc] initWithRootViewController:centerView]; centerView.title =@"Center"; self.centerViewController = centerNav; self.leftViewController = [self.storyboard instantiateViewControllerWithIdentifier:@"LeftViewController"]; self.leftVisibleWidth = 100; self.rightViewController = [self.storyboard instantiateViewControllerWithIdentifier:@"RightViewController"]; self.rightVisibleWidth = self.view.frame.size.width; self.bottomViewController = [self.storyboard instantiateViewControllerWithIdentifier:@"BottomViewController"]; }
我们再给导航栏上添加两个按钮,在CenterViewController类中,包含#import "UIViewController+RNSwipeViewController.h"
- (void)viewDidLoad { [super viewDidLoad]; UIButton *leftBtn = [UIButton buttonWithType:UIButtonTypeCustom]; leftBtn.frame = CGRectMake(0, 0, 44, 44); [leftBtn setImage:[UIImage imageNamed:@"left.png"] forState:UIControlStateNormal]; [leftBtn addTarget:self action:@selector(toggleLeft) forControlEvents:UIControlEventTouchUpInside]; UIBarButtonItem *leftBar = [[UIBarButtonItem alloc] initWithCustomView:leftBtn]; self.navigationItem.leftBarButtonItem = leftBar ; UIButton *rightBtn = [UIButton buttonWithType:UIButtonTypeCustom]; rightBtn.frame = CGRectMake(self.view.frame.size.width-44, 0,44 , 44); [rightBtn setImage:[UIImage imageNamed:@"right.png"] forState:UIControlStateNormal]; [rightBtn addTarget:self action:@selector(toggleRight) forControlEvents:UIControlEventTouchUpInside]; UIBarButtonItem *rightBar = [[UIBarButtonItem alloc] initWithCustomView:rightBtn]; self.navigationItem.rightBarButtonItem = rightBar; ; }
接着连个按钮事件,为了显示明显我们可以设置一下三个视图背景颜色
-(void)toggleLeft { [self.swipeController showLeft]; } -(void)toggleRight { [self.swipeController showRight]; }
RNSwipeViewController有一个协议方法,可以监听当前视图显示百分比(0~100)
RNSwipeViewController have a protocol method, can monitor the current view shows percentage (0 ~ 100)
#import <UIKit/UIKit.h> #import "RNRevealViewControllerProtocol.h" @interface LeftViewController : UIViewController<RNRevealViewControllerProtocol> @end
协议方法,当左侧视图完全显示时弹出一个alertView
-(void)changedPercentReveal:(NSInteger)percent { if (percent == 100) { UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"提示" message:@"这是一个测试" delegate:self cancelButtonTitle:@"OK" otherButtonTitles: nil]; [alert show ]; } }
注:这个第三方库有个缺点,我主类继承的UITabBarController,没办法改成RNSwipeViewController,所以我没用这种
发表评论
-
带你深入理解 FLUTTER 中的字体“冷”知识
2020-08-10 23:40 626本篇将带你深入理解 Flutter 开发过程中关于字体和文 ... -
Flutter -自定义日历组件
2020-03-01 17:56 1099颜色文件和屏幕适配的文件 可以自己给定 import ... -
Dart高级(一)——泛型与Json To Bean
2020-02-23 19:13 989从 Flutter 发布到现在, 越来越多人开始尝试使用 Da ... -
flutter loading、Progress进度条
2020-02-21 17:03 1166Flutter Progress 1 条形无固定值进度条 ... -
Flutter使用Https加载图片
2020-02-21 01:39 1003Flutter使用Https加载图片 使用http加载图片出 ... -
flutter shared_preferences 异步变同步
2020-02-21 00:55 838前言 引用 在开发原生iOS或Native应用时,一般有判断上 ... -
Flutter TextField边框颜色
2020-02-19 21:31 924监听要销毁 myController.dispose(); T ... -
flutter Future的正确用法
2020-02-18 21:55 799在flutter中经常会用到异步任务,dart中异步任务异步处 ... -
记一次Flutter简单粗暴处理HTTPS证书检验方法
2020-02-18 14:13 948最近在做Flutter项目到了遇到一个无解的事情,当使用Ima ... -
flutter 获取屏幕宽度高度 通知栏高度等屏幕信息
2019-07-27 08:39 1327##MediaQuery MediaQuery.of(con ... -
Mac上制作Centos7系统U盘安装盘
2019-07-23 11:25 639Centos7 下载地址: https://www.cento ... -
关于flutter RefreshIndicator扩展listview下拉刷新的问题
2019-07-10 19:40 1112当条目过少时listview某些嵌套情况下可能不会滚动(条目 ... -
flutter listview 改变状态的时候一直无限添加
2019-07-10 16:01 774setstate的时候会一直无限的调用listview.bui ... -
Flutter Android端启动白屏问题的解决
2019-07-09 00:51 1506问题描述 Flutter 应用在 Android 端上启动时 ... -
Flutter中SnackBar使用
2019-07-08 23:43 766底部弹出,然后在指定时间后消失。 注意: build(Bui ... -
Flutter 之点击空白区域收起键盘
2019-07-08 18:43 1780点击空白处取消TextField焦点这个需求是非常简单的,在学 ... -
Flutter 弹窗 Dialog ,AlertDialog,IOS风格
2019-07-08 18:04 1369import 'package:flutter/mate ... -
flutter ---TextField 之 输入类型、长度限制
2019-07-08 14:30 2313TextField想要实现输入类型、长度限制需要先引入impo ... -
【flutter 溢出BUG】键盘上显示bottom overflowed by 104 PIXELS
2019-07-08 11:13 1542一开始直接使用Scaffold布局,body:new Colu ... -
解决Flutter项目卡在Initializing gradle...界面的问题
2019-07-07 12:53 864Flutter最近很火,我抽出了一点时间对Flutter进行了 ...
相关推荐
在iOS中,通常使用UINavigationController的push和pop操作或者UIViewController的present和dismiss方法进行视图控制器的切换。然而,系统默认的过渡动画可能无法满足所有设计需求,因此HMGLTransitions提供了自定义...
Swift-SwipeViewController是一款专为iOS平台设计的类库,它为开发者提供了选项卡滑动切换视图的功能。在iOS应用中,这样的功能常见于许多应用的底部导航栏,用户可以通过左右滑动在不同的内容区域之间切换,提升...
4.如何使用.Net类库访问数据库?(Visual C++编程 源代码)4.如何使用.Net类库访问数据库?(Visual C++编程 源代码)4.如何使用.Net类库访问数据库?(Visual C++编程 源代码)4.如何使用.Net类库访问数据库?...
edna安装包(客户端及服务器端安装包)及使用的类库(ezDnaapi.dll,EzDNAApiNet.dll,ezDnaServApi.dll)。可以安装服务器端添加测点与自己通过类库开发的程序进行接口调试。
### CI中使用其他类库解决方法参考 #### 知识点概述 在CodeIgniter (CI) 框架中,开发人员经常会遇到需要引入和使用第三方类库的情况。例如,PEAR (PHP Extension and Application Repository) 是一个广泛使用的...
NModbus类库是实现Modbus协议的常用工具,本文将对NModbus类库的使用进行总结,涵盖从基本概念到实际应用的各个方面。 1. 导入NModbus类库 首先,需要将NModbus类库导入工程中,并添加引用、命名空间。工程属性...
7. **布局和样式**: 切换tab的实现通常需要考虑布局设计,比如使用横向滚动视图,以及各tab的样式控制,如字体大小、颜色、选中态的改变等。这些细节都需要在源码中得到体现。 8. **性能优化**: 对于动画效果,性能...
1. 如果你的类库打算供他人使用,可以将其打包成NuGet包,发布到NuGet.org或其他私有NuGet服务器,方便他人通过NuGet包管理器进行安装和更新。 2. 对于内部使用,可以将DLL文件和其对应的pdb(调试信息)文件一起...
使用这个类库,开发者可以避免在控制器中编写大量关于视图拼接的代码,从而专注于业务逻辑。 接下来是日志类库。CodeIgniter的日志类库 (`Loginfo.php.zip`) 提供了记录应用程序中错误和事件的功能。这在调试、追踪...
你需要重写`onCreate()`方法,使用`WindowManager`和`LayoutParams`设置悬浮窗的位置、大小、透明度等属性,并添加视图。 4. **悬浮窗显示与隐藏**:类库可能提供了方便的方法来控制悬浮窗的显示和隐藏,例如`...
6. **界面更新**:切换视图后,确保界面元素如按钮、菜单等的状态根据当前视图进行相应更新。 从提供的压缩包文件名"SwapDlg"来看,这可能是一个对话框类,用于实现视图切换的逻辑。在MFC中,`CDlg`类通常用于创建...
这个压缩包包含的“基于MFC树形视图控件类库以及源代码”是开发人员用于构建这种控件的资源,可以帮助程序员快速地集成和自定义树形视图功能。 MFC是微软提供的一套C++类库,用于简化Windows应用程序的开发。它将...
这个"VB使用C#类库DEMO"就是一个很好的实例,它展示了如何在Visual Basic (VB)项目中利用C#编写的类库。下面将详细介绍这个示例中的关键知识点。 首先,C#是一种面向对象的编程语言,以其现代化的语法和强大的.NET...
一个使用C#链接数据库类库 可以在C#程序中进行有效的数据链接时使用
本类库为开源免费代码,您可以任意使用其中的内容,也可以对本类库进行任意的修改或扩充,同时在您使用的过程中遇到的任何问题可以发送邮件给我们,我们会提供一切尽可能的帮助。您也可以将您拓展或修改后的类文件...
标题中的“基于C#编写的modbus tcp类库”指的是一个使用C#编程语言开发的软件组件,专门用于实现Modbus TCP通信协议。Modbus是一种广泛使用的工业通信协议,允许不同设备之间进行数据交换,特别是在自动化系统中。而...
这个“C#控件委托类库”显然是一个自定义开发的类库,目的是为了方便在进行GUI(图形用户界面)编程时对控件的操作进行抽象和简化。下面,我们将深入探讨委托、C#类库以及它们如何与控件交互。 首先,让我们了解...
"ok类库合集.rar" 是一个集合了多个实用类库的压缩文件,主要针对的是IT开发中的前端或UI设计部分。这些类库都以".elb"为扩展名,可能是...在实际开发中,根据项目需求选择合适的类库进行集成,可以大大简化工作流程。
本文档主要介绍 Java 类库的结构和使用方法,涵盖了 Java 中一些常用的包和类,例如 java.lang、java.awt、java.io 等。同时,也介绍了 String 类和 StringBuffer 类的使用方法。 Java 类库是 Java API 的一部分,...