天天看點

IOS深入學習(19)之View object1 前言2 詳述3 結語

1 前言

本章主要介紹了View視圖對象,包括了其屬性,視圖間關系和CALayer的簡介。

英文原文:http://blog.csdn.net/developer_zhang/article/details/12754255

2 詳述

    View是一個能夠自己繪制用一個window的矩形區域并且能夠響應例如手指觸摸或者滑鼠點選的使用者動作的對象。是一個視圖繪制一個自己的可視化外觀并且顯示響應觸摸和裝置輸入的外觀。不是所有的視圖都用來處理事件,但是視圖更可能處理事件的幾率多于其他的響應對象(具有響應事件能力的對象)。視圖也能夠提供輸出内容。對于一個可用的視圖,它必須位于層級視窗之中。

從Mac OSX的NSView或者IOS的UIView直接或者間接的繼承的視圖。這些類自己不執行繪制也不處理事件。但是提供接口和基礎結構給子類。AppKit和UIKit架構提供幾乎所有的我們在application視窗中看到的視圖,包括按鈕,表格視圖,文本框,工具欄和滑動條。這些視圖對于在Interface Builer庫中的工程是可以使用的。我們還能夠子類化UIView或者NSView并且建立自定義可以繪制自己并且處理事件以不同的方式的視圖。

2.1 視圖的核心屬性

在UIKit和AppKit架構中的視圖有重要的可操作的屬性:

·視圖邊界和位置:視圖的frame和bounds定義了它的邊界和它與其他視圖的的關系。frame指定在父視圖的坐标系中的位置和視圖的size。視圖的bounds指定本身視圖用來繪制自己的坐标系。(UIKit中的視圖還有一個定位他們矩形區域中心的屬性)。

·與其他視圖的關系:父視圖,子視圖和視窗屬性定義了一個在視窗中視圖在視圖層次的位置。我們添加視圖(子視圖)來建立混合視圖來封閉視圖(父視圖)并且基本上用來建立使用者界面。當封閉視圖自己被重置的時候,autoresizing屬性按照子視圖的位置和重置他們的方式執行。

IOS深入學習(19)之View object1 前言2 詳述3 結語

2.2 視圖是動畫能力的繼承

在IOS和OS中,每個視圖都通過layer屬性依靠一個核心動畫圖層對象(CALayer)。圖層對象緩存了視圖繪制内容,支援布局并且顯示内容,并且能夠合成和讓内容動起來。視圖确定的屬性,例如視圖frame和opacity都提供了隐含的動畫能力。此外,應用可能明确地使視圖活動起來通過使用Core Animation架構的工具。

在OS中,CALayer支援是一個可選的,然而在IOS中該支援是被植入到每一個視圖的實作之中的。

3 結語

    以上是所有内容,希望對大家有所幫助。

繼續閱讀