- 浏览: 2216224 次
- 性别:
- 来自: 北京
-
文章分类
- 全部博客 (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 浏览器
一、分析
寻找左边的规律,每一个uiview的x坐标和y坐标。
二、实现思路
(1)明确每一块用得是什么view
(2)明确每个view之间的父子关系,每个视图都只有一个父视图,拥有很多的子视图。
(3)可以先尝试逐个的添加格子,最后考虑使用for循环,完成所有uiview的创建
(4)加载app数据,根据数据长度创建对应个数的格子
(5)添加格子内部的子控件
(6)给内部的子控件装配数据
三、代码示例
执行效果:
寻找左边的规律,每一个uiview的x坐标和y坐标。

二、实现思路
(1)明确每一块用得是什么view
(2)明确每个view之间的父子关系,每个视图都只有一个父视图,拥有很多的子视图。
(3)可以先尝试逐个的添加格子,最后考虑使用for循环,完成所有uiview的创建
(4)加载app数据,根据数据长度创建对应个数的格子
(5)添加格子内部的子控件
(6)给内部的子控件装配数据
三、代码示例
// // YYViewController.m // 九宫格练习 // // Created by 孔医己 on 14-5-22. // Copyright (c) 2014年 itcast. All rights reserved. // #import "YYViewController.h" @interface YYViewController () @property(nonatomic,strong)NSArray *apps; @end @implementation YYViewController //1.加载数据 - (NSArray *)apps { if (!_apps) { NSString *path=[[NSBundle mainBundle]pathForResource:@"app.plist" ofType:nil]; _apps=[NSArray arrayWithContentsOfFile:path]; } return _apps; } - (void)viewDidLoad { [super viewDidLoad]; NSLog(@"%d",self.apps.count); //2.完成布局设计 //三列 int totalloc=3; CGFloat appvieww=80; CGFloat appviewh=90; CGFloat margin=(self.view.frame.size.width-totalloc*appvieww)/(totalloc+1); int count=self.apps.count; for (int i=0; i<count; i++) { int row=i/totalloc;//行号 //1/3=0,2/3=0,3/3=1; int loc=i%totalloc;//列号 CGFloat appviewx=margin+(margin+appvieww)*loc; CGFloat appviewy=margin+(margin+appviewh)*row; //创建uiview控件 UIView *appview=[[UIView alloc]initWithFrame:CGRectMake(appviewx, appviewy, appvieww, appviewh)]; //[appview setBackgroundColor:[UIColor purpleColor]]; [self.view addSubview:appview]; //创建uiview控件中的子视图 UIImageView *appimageview=[[UIImageView alloc]initWithFrame:CGRectMake(0, 0, 80, 50)]; UIImage *appimage=[UIImage imageNamed:self.apps[i][@"icon"]]; appimageview.image=appimage; [appimageview setContentMode:UIViewContentModeScaleAspectFit]; // NSLog(@"%@",self.apps[i][@"icon"]); [appview addSubview:appimageview]; //创建文本标签 UILabel *applable=[[UILabel alloc]initWithFrame:CGRectMake(0, 50, 80, 20)]; [applable setText:self.apps[i][@"name"]]; [applable setTextAlignment:NSTextAlignmentCenter]; [applable setFont:[UIFont systemFontOfSize:12.0]]; [appview addSubview:applable]; //创建按钮 UIButton *appbtn=[UIButton buttonWithType:UIButtonTypeCustom]; appbtn.frame= CGRectMake(10, 70, 60, 20); [appbtn setBackgroundImage:[UIImage imageNamed:@"buttongreen"] forState:UIControlStateNormal]; [appbtn setBackgroundImage:[UIImage imageNamed:@"buttongreen_highlighted"] forState:UIControlStateHighlighted]; [appbtn setTitle:@"下载" forState:UIControlStateNormal]; appbtn.titleLabel.font=[UIFont systemFontOfSize:12.0]; [appview addSubview:appbtn]; [appbtn addTarget:self action:@selector(click) forControlEvents:UIControlEventTouchUpInside]; } } -(void)click { //动画标签 UILabel *animalab=[[UILabel alloc]initWithFrame:CGRectMake(self.view.center.x-100, self.view.center.y+20, 200, 40)]; [animalab setText:@"下载成功"]; animalab.font=[UIFont systemFontOfSize:12.0]; [animalab setBackgroundColor:[UIColor brownColor]]; [animalab setAlpha:0]; [self.view addSubview:animalab]; // [UIView beginAnimations:Nil context:Nil]; // [animalab setAlpha:1]; // [UIView setAnimationDuration:4.0]; // [UIView commitAnimations]; //执行完之后,还得把这给删除了,推荐使用block动画 [UIView animateWithDuration:4.0 animations:^{ [animalab setAlpha:1]; } completion:^(BOOL finished) { //[self.view re]; }]; } - (void)didReceiveMemoryWarning { [super didReceiveMemoryWarning]; } @end
执行效果:

发表评论
-
带你深入理解 FLUTTER 中的字体“冷”知识
2020-08-10 23:40 656本篇将带你深入理解 Flutter 开发过程中关于字体和文 ... -
Flutter -自定义日历组件
2020-03-01 17:56 1133颜色文件和屏幕适配的文件 可以自己给定 import ... -
Dart高级(一)——泛型与Json To Bean
2020-02-23 19:13 1024从 Flutter 发布到现在, 越来越多人开始尝试使用 Da ... -
flutter loading、Progress进度条
2020-02-21 17:03 1201Flutter Progress 1 条形无固定值进度条 ... -
Flutter使用Https加载图片
2020-02-21 01:39 1045Flutter使用Https加载图片 使用http加载图片出 ... -
flutter shared_preferences 异步变同步
2020-02-21 00:55 864前言 引用 在开发原生iOS或Native应用时,一般有判断上 ... -
Flutter TextField边框颜色
2020-02-19 21:31 956监听要销毁 myController.dispose(); T ... -
flutter Future的正确用法
2020-02-18 21:55 816在flutter中经常会用到异步任务,dart中异步任务异步处 ... -
记一次Flutter简单粗暴处理HTTPS证书检验方法
2020-02-18 14:13 1008最近在做Flutter项目到了遇到一个无解的事情,当使用Ima ... -
flutter 获取屏幕宽度高度 通知栏高度等屏幕信息
2019-07-27 08:39 1369##MediaQuery MediaQuery.of(con ... -
Mac上制作Centos7系统U盘安装盘
2019-07-23 11:25 671Centos7 下载地址: https://www.cento ... -
关于flutter RefreshIndicator扩展listview下拉刷新的问题
2019-07-10 19:40 1158当条目过少时listview某些嵌套情况下可能不会滚动(条目 ... -
flutter listview 改变状态的时候一直无限添加
2019-07-10 16:01 817setstate的时候会一直无限的调用listview.bui ... -
Flutter Android端启动白屏问题的解决
2019-07-09 00:51 1548问题描述 Flutter 应用在 Android 端上启动时 ... -
Flutter中SnackBar使用
2019-07-08 23:43 800底部弹出,然后在指定时间后消失。 注意: build(Bui ... -
Flutter 之点击空白区域收起键盘
2019-07-08 18:43 1806点击空白处取消TextField焦点这个需求是非常简单的,在学 ... -
Flutter 弹窗 Dialog ,AlertDialog,IOS风格
2019-07-08 18:04 1403import 'package:flutter/mate ... -
flutter ---TextField 之 输入类型、长度限制
2019-07-08 14:30 2362TextField想要实现输入类型、长度限制需要先引入impo ... -
【flutter 溢出BUG】键盘上显示bottom overflowed by 104 PIXELS
2019-07-08 11:13 1601一开始直接使用Scaffold布局,body:new Colu ... -
解决Flutter项目卡在Initializing gradle...界面的问题
2019-07-07 12:53 907Flutter最近很火,我抽出了一点时间对Flutter进行了 ...
相关推荐
九宫格坐标计算 一、要求 完成下面的布局 二、分析 寻找左边的规律,每一个uiview的x坐标和y坐标。 三、实现思路 (1)明确每一块用得是什么view (2)明确每个view之间的父子关系,每个视图都只有一个父视图,拥有...
在iOS平台上实现“九宫格连线手势解锁”是一种为设备添加额外安全层的方式,它模仿了Android系统中的经典解锁机制。这种解锁方式不仅提供了一种直观的用户交互体验,还能帮助用户快速识别并访问他们的设备。以下是...
本文主要探讨了如何在iOS平台上创建一个自定义的UIButton九宫格效果,这在很多应用场景中都非常常见,如导航菜单、游戏面板等。下面将详细解释实现这个功能的关键步骤和涉及的技术点。 首先,我们要了解九宫格的...
- 用户在九宫格上绘制的路径需要被记录下来,通常以坐标序列的形式保存。 - 存储这些路径信息时,可以考虑使用SQLite数据库或者SharedPreferences(Android)或UserDefaults(iOS)。 4. **密码匹配算法**: - ...
这个项目提供了一套完整的解决方案,基于Unity2018.1.0版本,允许用户在游戏或应用内打开相机拍摄照片或从相册选择图片,并将选中的照片转换为九宫格样式进行保存。 首先,我们要了解如何在Unity中调用原生平台的...
在iOS应用开发中,创建九宫格视图布局是一项常见的任务,它通常用于展示一系列小图标或内容,如产品列表、菜单选项等。本篇将深入解析如何进行相关的计算方法,确保视图在不同屏幕尺寸下正确显示。 首先,我们需要...
在iOS开发中,"绘画九宫格跳转"是一个典型的交互设计与图形处理的应用场景。这一功能涉及到的主要知识点包括: 1. **Core Graphics (CG) 和 UIKit**:iOS中的绘图功能主要通过Core Graphics框架来实现,它允许...
设计九宫格锁屏涉及到多个技术层面,包括图形用户界面(GUI)设计、触摸事件处理、路径匹配算法以及安全性策略。以下是关于这个主题的一些详细知识点: 1. **图形用户界面**:九宫格由9个小方块组成,每个方块代表...
手势密码通常由用户在九宫格图案上绘制一条连续的路径来设定,这条路径连接了至少四个点,每个点代表一个数字。系统会记录这个路径的顺序和位置,用于后续的解锁验证。 **二、GestureLockView实现** 1. **自定义...
2. **绘制九宫格**:在视图上绘制9个可触摸的点,可以使用`CAShapeLayer`来实现。 3. **监听触摸事件**:在视图中添加`UIGestureRecognizer`监听用户的触摸操作。 4. **记录路径**:在`touchesBegan`, `...
这个界面可能会由多个子视图组成,如圆点(代表九宫格的点)和连线(表示用户绘制的路径)。这些视图可以使用Auto Layout进行布局,以适应不同屏幕尺寸的设备。 2. **手势识别**:项目中的`GestureRecognizer`类...
微信等社交应用中,通常采用九宫格的方式展示群聊成员,通过将9个或更少的头像排列在一个正方形区域内,使得每个头像都能被清晰地看到。这种设计既节省空间,又能直观地反映群聊的参与人数。 实现群聊组合头像的...
首先,手势解锁的基本原理是用户在预设的九宫格区域内绘制特定的路径,系统记录并保存这个路径作为解锁密码。在后续的解锁过程中,用户需再次绘制相同的路径以完成解锁。这涉及到图形匹配、坐标计算和用户交互等多个...
- 设计一个可调整填充的背景图案,比如一个矩形或环形,可以使用SVG、九宫格图片或者纯色渐变。 - 在控件内部计算当前数值对应的百分比,然后根据这个百分比调整背景的填充状态。 - 如果是圆形进度条,可能需要...
为了自动化测试这种功能,我们需要模拟在特定路径上连续点击九宫格的点,形成预设的手势。同样,这可以通过`TouchAction`类来实现,通过连续的`press`和`move_to`动作,连接起手势路径上的所有点,最后执行`release`...