自学知识(二)

1.判断ipad还是iphone来设置表视图行高的尺寸:

1  self.tableView.rowHeight = [[UIDevice currentDevice].model hasSuffix:@"iPad"] ? 60.0 : 44.0;

2.富文本显示文字和图片:

1  NSMutableAttributedString *attributedText = [[NSMutableAttributedString alloc] initWithString:@""];
2     NSTextAttachment *attatchment = [[NSTextAttachment alloc] init];
3     attatchment.image = [UIImage imageNamed:@"icon_cat"];
4     attatchment.bounds = CGRectMake(0, -3, attatchment.image.size.width, attatchment.image.size.height);
5     [attributedText appendAttributedString:[NSAttributedString attributedStringWithAttachment:attatchment]];
6     [attributedText appendAttributedString:[[NSAttributedString alloc] initWithString:@"  Hey Daily Event  "]];
7     [attributedText appendAttributedString:[NSAttributedString attributedStringWithAttachment:attatchment]];
8     self.eventLabel.attributedText = attributedText.copy;

3.自定义键盘上的按钮:

 1   //在键盘上加上一个ToolBar,在上面加上一个按钮来隐藏键盘
 2
 3     //定义一个toolBar
 4     UIToolbar * topView = [[UIToolbar alloc]initWithFrame:CGRectMake(0, 0, 320, 30)];
 5
 6     //设置style
 7     [topView setBarStyle:UIBarStyleBlack];
 8
 9     //定义两个flexibleSpace的button,放在toolBar上,这样完成按钮就会在最右边
10     UIBarButtonItem * button1 =[[UIBarButtonItem  alloc]initWithBarButtonSystemItem:                                        UIBarButtonSystemItemFlexibleSpace target:self action:nil];
11
12     UIBarButtonItem * button2 = [[UIBarButtonItem  alloc]initWithBarButtonSystemItem:                                        UIBarButtonSystemItemFlexibleSpace target:self action:nil];
13
14     //定义完成按钮
15     UIBarButtonItem * doneButton = [[UIBarButtonItem alloc]initWithTitle:@"完成" style:UIBarButtonItemStyleDone  target:self action:@selector(resignKeyboard)];
16
17     //在toolBar上加上这些按钮
18     NSArray * buttonsArray = [NSArray arrayWithObjects:button1,button2,doneButton,nil];
19     [topView setItems:buttonsArray];
20
21     [textView setInputAccessoryView:topView];
22     
1 //点击完成按钮
2 - (void)resignKeyboard{
3
4     [textView resignFirstResponder];
5 }

4.监听键盘的弹出与隐藏:

1  //注册通知,监听键盘弹出事件
2     [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardDidShow:) name:UIKeyboardDidShowNotification object:nil];
3
4     //注册通知,监听键盘消失事件
5     [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardDidHidden) name:UIKeyboardDidHideNotification object:nil];

5.手势触摸问题:

 1 - (void)viewDidLoad{
 2
 3
 4     [super viewDidLoad];
 5
 6
 7     UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc]initWithTarget:self action:@selector(tap:)];
 8     [self.view addGestureRecognizer:tap];
 9
10 }
11
12 //后触发
13 - (void)tap:(UITapGestureRecognizer *)tap{
14
15     NSLog(@"点击手势被触发");
16
17 }
18
19 //先触发
20 - (void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event{
21
22     NSLog(@"被触摸");
23
24 }

6.可以使用通知解决手机的翻转问题:

 1  //检测手机翻转
 2     [[NSNotificationCenter defaultCenter]addObserver:self selector:@selector(orientationChanged) name:UIDeviceOrientationDidChangeNotification object:nil];
 3
 4
 5 }
 6
 7
 8 - (void)orientationChanged{
 9
10     switch ([[UIDevice currentDevice] orientation]) {
11         case UIDeviceOrientationPortrait:
12             NSLog(@"portrait");
13             break;
14         case UIDeviceOrientationPortraitUpsideDown:
15             NSLog(@"portraitUpSideDown");
16             break;
17         case UIDeviceOrientationLandscapeLeft:
18             NSLog(@"landscapeLeft");
19             break;
20         case UIDeviceOrientationLandscapeRight:
21             NSLog(@"landscapeRight");
22             break;
23         case UIDeviceOrientationFaceDown:
24             NSLog(@"facedown!!");
25             break;
26         case UIDeviceOrientationFaceUp:
27             NSLog(@"FaceUp");
28             break;
29         default:
30             break;
31     }
32     
时间: 2024-08-29 03:49:14

自学知识(二)的相关文章

整理一下CoreGraphic和Quartz2D的知识(二)

利用Quartz2D绘图的基本步骤 •1. 获取与视图相关联的上下文对象 –UIGraphicsGetCurrentContext •2. 创建及设置路径 (path) –2.1 创建路径 –2.2 设置路径起点 –2.3 增加路径内容…… •3. 将路径添加到上下文 •4. 设置上下文属性 –边线颜色.填充颜色.线宽.线段连接样式.线段首尾样式.虚线样式… •5. 绘制路径 •6. 释放路径 什么是路径::? •路径定义了一条或者或多条形状或子路径 •子路径可以包含一条或者多条直线或曲线 •子

window7使用svn(svn系列 客户端 知识二总结)

 ?eclipse插件subclipse  ?TortoiseSVN  ?svn操作  ?注意事项 使用svn可以在eclipse直接装subclipse或者在windows使用TortoiseSVN. 1.eclipse插件subclipse 可以在线或者离线安装,这里只介绍离线安装. 下载subclipse:http://subclipse.tigris.org/ csdn下载地址:http://download.csdn.net/detail/sinat_31719925/9800062

go-基础知识二-数据类型-变量

1.0 变量的含义:变数或变量,是指没有固定的值,可以改变的数.变量以非数字的符号来表达,一般用拉丁字母.变量是常数的相反.变量的用处在于能一般化描述指令的方式.若果只能使用真实的值,指令只能应用于某些情况下.变量能够作为某特定种类的值中任何一个的保留器. 2.0 GO语言 变量的表现形式 2.1 使用var关键字是Go最基本的定义变量方式,与OC不同的是Go把变量类型放在变量名后面: //定义一个名称为“variableName”,类型为"type"的变量 var variableN

网络基础实用知识(二)

三.  六类四对非屏蔽双绞线 1. 六类四对非屏蔽双绞线(室内型.室外型) 2.六类四对非屏蔽双绞线室内型截面图 3.说明 六类双绞线缆的传输频率为1MHz-250MHz,六类布线系统在200MHz时综合衰减串扰比(PS-ACR)应该有较大的余量,它提供2倍于超五类的带宽.六类布线的传输性能远远高于超五类标准,最适用于传输速率高于1Gbps的应用.六类与超五类的一个重要的不同点在于:改善了在串扰以及回波损耗方面的性能,对于新一代全双工的高速网络应用而言,优良的回波损耗性能是极重要的.六类标准中取

ASP.NET Core 2.2 基础知识(二) 中间件

原文:ASP.NET Core 2.2 基础知识(二) 中间件 中间件是一种装配到应用管道以处理请求和相应的软件.每个软件都可以: 1.选择是否将请求传递到管道中的下一个组件; 2.可在调用管道中的下一个组件前后执行工作. 管道由 IApplicationBuilder 创建: 每个委托都可以在下一个委托前后执行操作,.此外,委托还可以决定不将请求传递给下一个委托,这就是对请求管道进行短路.通常需要短路,是因为这样可以避免不必要的工作.比如: 1.静态文件中间件可以返回静态文件请求并使管道的其余

redis常用知识(二)

Redis相关知识总结(二) Php操作redis常用的方法 1.  String类型 (1)     Get(key)  获取设置的值 (2)     Set(key,value)  设置相应的key值 (3)     getSet(key,value)        修改key值 (4)     append(key,value2)    在指定的key-value后追加新的value (5)     getRange(key, start, end) 根据指定的key,对value进行字符

Java基础知识二次学习-- 第一章 java基础

基础知识有时候感觉时间长似乎有点生疏,正好这几天有时间有机会,就决定重新做一轮二次学习,挑重避轻 回过头来重新整理基础知识,能收获到之前不少遗漏的,所以这一次就称作查漏补缺吧!废话不多说,开始! 第一章  JAVA简介 时间:2017年4月24日10:23:32 章节:01章_02节 内容:jdk的配置与安装 完成情况:已经完成,cmd中javac提示出相关命令 时间:2017年4月24日10:30:39 章节:01章_04节 内容:输出HelloWorld 完成情况: 已经完成 javac先将

Java基础知识(二)

1,字符串 new String("abc")创建了几个对象? 一个或两个,如果常量池中原来有"abc",则只创建一个对象:如果常量池中原来没有字符串"abc",那么就会创建两个对象. String s="abc"; String s1="ab"+"c"; System.out.println(s==s1); 输出 true ,因为"ab"+"c"

计算机科学基础知识(二)Relocatable Object File

一.前言 一个合格的c程序员(也可以叫做软件工程师,这样看起来更高大上,当然,我老婆心情不好的时候总是叫我"死打字的",基本也能描述这份职业,呵呵)需要理解编译.链接和加载的过程,而不是仅仅关注c语言的语法和词法.本文主要以此为切入点,描述linux系统下,一个普通的hello world程序的生命历程,并借机灌输一些程序编译时和运行时的基本术语和概念.当然,由于我本人是一个linuxer,因此借用linux来描述这些知识会方便些,但是对于计算机科学而言,这些东西概念上是类似的,只是实