• 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

  • 相关阅读:
    网页布局色块
    多物体运动
    elasticsearch基础命令
    mysiam,innodb
    git常用命令
    redis内存淘汰机制
    PHP运行模式
    MySQL主从延迟
    ip、uv、pv
    缓存出现的几种情况
  • 原文地址:https://www.cnblogs.com/yushunwu/p/2687071.html
Copyright © 2020-2023  润新知