objective c

为什么要有属性呢

1 是为了实例变量的安全性和再分类性, 保障安全

2 提供一个阀门,延迟实例化。列新BUI

记下哪些对象需要重 绘 一致性检查

本身是很有价值的

实例变量

必需要有实例变量来支持属性吗?

不含属性的实例变量

.好读

.和结构体有关系

strong VS weak

是我们给指针的描述或属性

非强即弱

strong 是对于对象来说的

指针的强弱是用于表示指向对象的指针。而用于指向存储器的指针

强指针是指通过指针被保存在堆中,而不把它分配到存储器,直到我不再用强指针把指针设为零,把我从堆里弄出来,

weak  不重要的,,,

弱指针只在ios5中应用程序运行时起作用

从堆中出来时,,归零

dealloc

当在本地变量超 出他的scope后,就不再指 向了。

编译器给你做引用计数,一人

 UIInterfaceOrientationIsPortrait

UIInterfaceOrientationPortraitUpsideDown

landscape left    landscape right

也可以禁止某个方向
Autorotation

You can control whether the user interface rotates along with it

Implement the following method in your computer

- (BOOL) shouldAutorotationToInterfaceOrientation::(UIInterfaceOrientation)orientation

{

  return UIInterfaceOrientationIsPortrait(orientation);

  return YES;

  return (orientation != UIINterfaceOrientationPortraitUpSideDown);

}

 

if you support an orientation, what will happen when rotatd?

the frame of all subviews in your controllers view will be adjested.

the adjustment i baseed on ther struts and springs

you set strut and sprintg in xcode

when a view's bounds changes because it frams is altered does drwaRect, get called again???no

你的视图会改变自己的边界再次变得宽而短 或长而窄

各子视图也会改变框架

这些变化的规则是什么

由struct and springs 决定

你们的drawRect 不会被重新调用

set a view's struts and springs in size inspector in Xcode

structs and springs 的功能是什么?

grows and shrinks as its supperview's bounds grow nd shrink because structs fixed to all sides and both spring

有些事情是struct and spring 无法做的

use code

didRotateToUIOrientation

willAnimateToUIRotation

当视图边界发生变化

struct and springs 使视图变宽时,你的默认视图会怎 样?

它会重新调用drawRect吗

不会

redraw an bounds change?

the bit of your view will be stretched or squished or moved.

位图会变得有点粗糙。


有一个名为ContentMode的属性

用来描述视图在边界改变后的变化

三种模式

ContentModleleft  right  top

ContentModebottomright bottomleft

所有表示方位的模式将视图的位图移动到指定位置

我在视图变宽之前要如何处理位图

Scale   ToFill    AspectFill  AspectFit  可以拉伸视图位图的像素

redraw

ContentStretch 允许你在视图中指定矩形

指定一个需伸缩的长矩形,  


Initializing a UIView

设置自定义视图的某些初始状态  需要一些状态设置

ContentMode

self = [super initWithFrame]

但问题是当你的视图从故事板中跳出时

它的initWithFrame没有被调用

在跳出时都会伴随着一个故事板,

awakeFromNib实现初始化

protocols     新的语法

@interface

没有对应的@implementation吧

协议的执行过程发生在其他对象中

协议紧紧是一个属性的方法集

请求其它对象来执行协

你的协议依赖于其它协议

必选协议定义和创建

 有一个委托, 将多个方法传给它的委托,并定义协议被 ScrollView.h

可以放在别的头文件里,也可以自成一体

@interface未尾 使用<标记以执行协议

#import "foo.h"

@interface MyClass : NSObject <foo>

@end

执行foo里所有方法

you must implement all non-@optional methods

we can then declare id variables with a protocol requirement

id <foo> obj = [[Myclass alloc] init];

 

id就是指向未知类型对象的指针

Also can declare arguments to methods to require a protocol

- (void)giveMeFooObject:(id <foo>anObjectTemplementingFoo;

@property (nonatomic ,weak))

 

Just like satic typing , this is all just compiler-helping -you stuff

an documentation for your method interfaces

use of protocols in IOS delegates and data sources

视图永远不知道控制器的类

以弱属性来创建委托

将它的指回指针指向nil

 

UIGestureRecognizer

we've seen how to draw in our UIView ,how do we get touches?

rawevents

Gestures are recognized by the class UIGestureRecognizer

是一个对象它会观窗视图中的触摸事件,手势类型匹配

比指绽 放, 滑动或平移

处理器

基类是UIGestureRecognizer

创建一个手势识别器并连接至视 图,

在识别手势后再处理它

由控制器完成

发生时是由视图完成

如果在处理一些修改模型的,,控制器会处理

控制器负责加手势,视图也有可能自己加手势

A 工表格遥秋工UIV 工C火田田

平移手势识别器

how do we impement the target of a gesture recognizer?

UIPaGestureRecognizer

translationView

velocityInView

setTranslation

位移,速度, 重

state one important property

Possible   recogized

Begin  END

 

 

posted @ 2012-09-15 23:09  顺武  阅读(388)  评论(0编辑  收藏  举报