《原》DrawingPrinting程式設計學習1

2022-07-26 03:54:07 字數 1699 閱讀 3669

ios  繪圖 可以通過兩種方式 實現

1.core graphics and uikit frameworks, 支援2d檢視

2.opengl es      這裡先不討論

首先了解幾個主要的概念

1-graphics context圖形上下文(圖形環境)

為了顯示檢視內容,uikit 為渲染工具 建立了乙個graphics context(圖形上下文)。這個上下文包括了繪圖系統需要執行的一些繪圖命令的資訊。     比如 一些繪圖的屬性   如fill and stroke color, the font, the clipping area, and line width.  我們也可以為位圖影象和pdf影象建立自定義的 圖形上下文 。

2-default coordinate systemuikit 預設的座標系統   view的左上角是原點  沒啥好說的

3-logical coordinate space測量兩點間的距離  device coordinate space 是測量畫素間的距離   從精確度上看 「點」是用浮點值表示的

drawing

uikit and core graphics  有很多補充的影象功能 包括graphics contexts, bezier paths, images, bitmaps, transparency layers, colors, fonts, pdf content, and drawing rectangles and clipping areas 

另外core graphics    有與line attributes, color spaces, pattern colors, gradients, shadings, and image masks  這些屬性相關的方法

the core animation framework    允許我們通過操作和顯示內容 建立流動樣式的動畫效果   而這裡的內容可以是通過其他方式建立的

一些ios裝置的螢幕的特點是 高解析度,所以 你的應用程式 必須做兩手準備  即能在這些高解析度的機器上跑也能在那些低解析度的機器上跑

我們可以做的是 準備多張以適應高解析度  然後在**處 判斷條件並且 應用合適的

自ios4.2起  應用程式支援 無限列印內容  ,當實現列印工作是,我們有三種方式來把要列印的內容交給uikit

1.可以直接給framework 乙個或者多個可直接列印的物件,這樣的物件需要最低限度的應用程式的參與  

these are

nsdata, nsurl, uiimage,

or alasset

objects containing or referencing image data or pdf content 

2.可以分配乙個格式化的程式來完成列印工作,這個格式化的程式可以是乙個物件,能夠對許多頁的內容進行某種形式的布局,例如plain text or html    

3.可以為列印工作分配乙個頁渲染器,頁渲染器通常是乙個uiprintpagerenderer   的自定義子類的乙個例項     乙個頁渲染器能使用乙個或者多個 列印格式化程式  來完成畫圖工作以及 格式化要列印的內容

原環套原環

今天在除錯兄弟的程式的時候發現了乙個問題,就是在組合資料的時候,有些時候可以成功,有些時候失敗,感覺十分奇怪。功能大概是這樣的,就是在一棵樹上掛資料,所有的節點都可以有資料,不只是葉子的,在組合資料的時候,可以從任意節點取資料,但是不能是重複的資料。資料可能出現的情況如圖a b c所示,圖a是沒有干...

MongoDB writeConcern原理解析

mongodb支援客戶端靈活配置寫入策略 writeconcern 以滿足不同場景的需求。db.collection.insert mongodb支援的writeconncern選項如下 w 資料寫入到number個節點才向用客戶端確認 j 寫入操作的journal持久化後才向客戶端確認 wtime...

LinkedBlockingQueue原理分析

linkedblockingqueue也是乙個阻塞佇列,相比於arrayblockingqueue,他的底層是使用鍊錶實現的,而且是乙個可有界可無界的佇列,在生產和消費的時候使用了兩把鎖,提高併發,是乙個高效的阻塞佇列,下面就分析一下這個佇列的原始碼。鍊錶節點定義 static class node...