笔记(实习第一周)

bounds的原点是(0,0),frame原点任意

bounds指再本身坐标系统的位置

frame是父坐标

UITextField的重绘

  1. – textRectForBounds:     //重写来重置文字区域
  2. – drawTextInRect:         //改变绘文字属性.重写时调用super可以按默认图形属性绘制,若自己完全重写绘制函数,就不用调用super了.
  3. – placeholderRectForBounds:  //重写来重置占位符区域
  4. – drawPlaceholderInRect:  //重写改变绘制占位符属性.重写时调用super可以按默认图形属性绘制,若自己完全重写绘制函数,就不用调用super了.
  5. – borderRectForBounds:  //重写来重置边缘区域
  6. – editingRectForBounds:  //重写来重置编辑区域
  7. – clearButtonRectForBounds:  //重写来重置clearButton位置,改变size可能导致button的图片失真
  8. – leftViewRectForBounds:
  9. – rightViewRectForBounds:
  10. TextFieldDelegate委托方法:
  11. 1、// 设置输入框,是否可以被修改
  12. // NO-将无法修改,不出现键盘
  13. // YES-可以修改,默认值
  14. - (BOOL)textFieldShouldBeginEditing:(UITextField *)textField{
  15. return YES;
  16. }
  17. 2、// 当点击键盘的返回键(右下角)时,执行该方法。
  18. // 一般用来隐藏键盘
  19. - (BOOL)textFieldShouldReturn:(UITextField *)textField{
  20. if (txtAccount == textField) {
  21. [txtAccount resignFirstResponder];
  22. }
  23. return YES;
  24. }
  25. 3、// 当输入框获得焦点时,执行该方法。
  26. - (void)textFieldDidBeginEditing:(UITextField *)textField{
  27. NSLog(@"textFieldDidBeginEditing");
  28. }
  29. 4、// 指定是否允许文本字段结束编辑,允许的话,文本字段会失去first responder
  30. - (BOOL)textFieldShouldEndEditing:(UITextField *)textField{
  31. return YES;
  32. }
  33. 5、// 文本框失去first responder 时,执行
  34. - (void)textFieldDidEndEditing:(UITextField *)textField{
  35. NSLog(@"textFieldDidEndEditing");
  36. }
  37. 6、// 指明是否允许根据用户请求清除内容
  38. - (BOOL)textFieldShouldClear:(UITextField *)textField{
  39. NSLog(@"textFieldDidEndEditing");
  40. return YES;
  41. }
  42. 7、// 文本框的文本,是否能被修改
  43. - (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string{
  44. return YES;
  45. }

在iOS 7中,苹果引入了一个新的属性,叫做[UIViewController setEdgesForExtendedLayout:],它的默认值为UIRectEdgeAll。当你的容器是navigation controller时,默认的布局将从navigation bar的顶部开始。这就是为什么所有的UI元素都往上漂移了44pt。

修复这个问题的快速方法就是在方法- (void)viewDidLoad中添加如下一行代码:


1


self.edgesForExtendedLayout = UIRectEdgeNone;

这样问题就修复了。

contentSize、contentInset和contentOffset 是 scrollView三个基本的属性。

contentSize:

其实就是scrollview可以滚动的区域,比如frame = (0 ,0 ,320 ,480) contentSize = (320 ,960),代表你的scrollview可以上下滚动,滚动区域为frame大小的两倍。

contentOffset:

是scrollview当前显示区域顶点相对于frame顶点的偏移量,比如上个例子你拉到最下面,contentoffset就是(0 ,480),也就是y偏移了480

contentInset:

是scrollview的contentview的顶点相对于scrollview的位置,例如你的contentInset = (0 ,100),那么你的contentview就是从scrollview的(0 ,100)开始显示

loadingView一般采用0.8的透明度

//控制font的长度

if (size.width < 40.0f)

size.width = 40.0f;

else if (size.width > 60.0f)

size.width = 60.0f;

//从sdk7开始,rightBarButtonItem按钮比以前的版本左移了20个像素,而且sdk不提供设置rightBarButtonItem位置的方法,所以只能将贴图右偏

rightBarButton.imageEdgeInsets = UIEdgeInsetsMake(0,5,0,-5);

60s倒计时

timer = [NSTimer scheduledTimerWithTimeInterval:1.0 target:self selector:@selector(timerFireMethod:) userInfo:nil repeats:YES];

自动布局中

autoresizingMask属性有

enum {

UIViewAutoresizingNone                 = 0,

UIViewAutoresizingFlexibleLeftMargin   = 1 << 0,

UIViewAutoresizingFlexibleWidth        = 1 << 1,

UIViewAutoresizingFlexibleRightMargin  = 1 << 2,

UIViewAutoresizingFlexibleTopMargin    = 1 << 3,

UIViewAutoresizingFlexibleHeight       = 1 << 4,

UIViewAutoresizingFlexibleBottomMargin = 1 << 5

};

UIViewAutoresizingNone就是不自动调整。

UIViewAutoresizingFlexibleLeftMargin 自动调整与superView左边的距离,保证与superView右边的距离不变。

UIViewAutoresizingFlexibleRightMargin 自动调整与superView的右边距离,保证与superView左边的距离不变。

UIViewAutoresizingFlexibleTopMargin 自动调整与superView顶部的距离,保证与superView底部的距离不变。

UIViewAutoresizingFlexibleBottomMargin 自动调整与superView底部的距离,也就是说,与superView顶部的距离不变。

UIViewAutoresizingFlexibleWidth 自动调整自己的宽度,保证与superView左边和右边的距离不变。

UIViewAutoresizingFlexibleHeight 自动调整自己的高度,保证与superView顶部和底部的距离不变。

autoresizingMask属性主要指的是如果父控件发生变化,比如说原来是320*480,发生了变化414*736,其中的view会发生等比例变化;

CALayer里的contentsGravity属性可选的有

kCAGravityCenter

kCAGravityTop

kCAGravityBottom

kCAGravityLeft

kCAGravityRight

kCAGravityTopLeft

kCAGravityTopRight

kCAGravityBottomLeft

kCAGravityBottomRight

kCAGravityResize

kCAGravityResizeAspect

kCAGravityResizeAspectFill

目的是为了决定内容在图层的边界中怎么对齐。

时间: 2024-10-10 22:11:30

笔记(实习第一周)的相关文章

《Machine Learning》系列学习笔记之第一周

<Machine Learning>系列学习笔记 第一周 第一部分 Introduction The definition of machine learning (1)older, informal definition--Arthur Samuel--"the field of study that gives computers the ability to learn without being explicitly programmed." (2)modern d

校外实习-第一周总结7.9

眨眼间,我来单位实习已然过去一周了,这一周除了第一天和第二天没有和单位的实习人员一起去培训,剩下的三天一直在和单位的实习人员一起去参加培训课程,感觉这一周下来,并不和我想象中的实习一样,就是跑个腿儿的差事儿,这个是真的可以学到知识,也真的体会到了做一个码农的辛苦,尤为的后悔当初没有在课堂上好好的学习巩固,也体会到了光在课堂上的学的东西是不太够的,更体会到了动手实践的重要性,从这儿深切的认知余感受到了实践出真知的真谛所在.尤其是在学习正则表达式时,觉得这个真的好难,勉勉强强跟下老师敲得代码了,但是

实习第一周感受和总结

初十就来实习,其实挺激动的,所以没有假后的那些各种综合症.刚来公司给配置了云桌面和新电脑,挺兴奋的呢,不知道为什么,自己很喜欢新的和好用的电脑.公司给每位实习生都安排有一位导师,我的导师刚好我们小组的组长.通过这一周跟他的接触感觉他挺靠谱的,挺年轻的,但是经验很丰富,而且做事情很系统,想问题也很周到和全面.比如他给我讲一些公司的情况和计划安排的时候,我看到他把带新人的培训计划和任务做成文档和版本,讲得很详细清楚:组员给其他地方发包的时候他一直强调要注意发包的时间,不要在人家快下班的时候发,一个组

实习第一周总结

实习了一周,基础太差,只做了写页面一件事,真正做起来才发现要对接后台,我写的完全不合格,最后还得麻烦老大帮忙重新改了一遍才能给后台绑定数据,前路漫漫啊(年纪轻轻为啥这么想不开,打什么代码呢?-----) 1.position:absolute 与定位问题使用了position:absolute之后发现想要居中,margin不起作用了,一查资料发现,absolute以后,盒子模型脱离了文档流,如果他的父级元素没有定义relative,那么这个盒子模型会以body为父级元素相对定位.而 absolu

[Cousera Angular JS学习笔记]第一周

最近在给搜索引擎做前台,开始学习Angular JS,直接上coursera上的课程:https://www.coursera.org/learn/angular-js/home/week/1(没有JS基础的同学可以和我一样先过下cousera的JS课程 Interacticity with JavaScript) 要先安装bower(方便获取JS),安装bower之前要先安装node JS (1) 安装nodejs过程直接参考http://czpae86.iteye.com/blog/1636

[Cousera Angular JS学习笔记]第一周(2)

之前写了一个简单的angular的页面,这边主要要学习几个用法:controller,filter (1)第一个练习主要是把原来的ng-init的内容移到controller 首先定义module名称 <html lang="en" ng-app="confusionApp"> 然后初始化module和controller,是在script标签下面 <script> var app = angular.module('confusionApp

实习第一周学习总结

Fielding将他对互联网软件的架构原则,定名为REST,即Representational State Transfer的缩写.我对这个词组的翻译是"表现层状态转化". 如果一个架构符合REST原则,就称它为RESTful架构. 要理解RESTful架构,最好的方法就是去理解Representational State Transfer这个词组到底是什么意思,它的每一个词代表了什么涵义.如果你把这个名称搞懂了,也就不难体会REST是一种什么样的设计. 资源(Resources) R

实习第一周第一天:接口 extends是继承类,implement是实现接口,原接口里面的方法填充,方法名也是不变,重写override是父类的方法名不变,把方法体给改了

一.定义 Java接口(Interface),是一系列方法的声明,是一些方法特征的集合,一个接口只有方法的特征没有方法的实现,因此这些方法可以在不同的地方被不同的类实现,而这些实现可以具有不同的行为(功能). 接口定义的一般形式为: [访问控制符]interface <接口名> { 类型标识符final 符号常量名n = 常数: 返回值类型  方法名([参数列表]); - } 二.接口的特点 1.Java接口中的成员变量默认都是public,static,final类型的(都可省略),必须被显

python学习笔记(第一周):变量

在python中申明一个变量,不需要申明变量的类型,如下: name = "Eraser Li" 打印变量,代码如下: print("My name is",name) 控制台输出结果: My name is Eraser Li 变量赋值给变量: name2 = name print("My name is",name2) 控制台输出结果: My name is Eraser Li 现在给name重新赋值: name = "Eraser