簡體   English   中英

如何在drawRect中這樣繪制?

[英]How to draw like this in drawRect?

iPhone開發中的問題:我想畫一個四邊形,四邊形的四個黑角(CGPoint)可變。 我覆蓋了drawRect方法,但它僅顯示矩形而不是四邊形。 這是否意味着drawRect只能繪制具有四個CGPoint的矩形?

最初的要求是通過觸摸和移動任何角點來更改四邊形的形狀。 我可以通過覆蓋drawRect解決此問題嗎? 我還應該做點別的嗎? 謝謝。

-drawRect:是放置繪圖代碼的位置,該代碼可以繪制幾乎任何您想要的東西。 您當然不限於矩形。 我不確定我是否遵循您的問題的特殊性質-如果您發布一些代碼,這會很有幫助。 通常, -drawRect:是放置繪圖代碼的正確位置,如果視圖未按照您希望的方式進行繪圖,則很可能是由於代碼中的問題而不是-drawRect:方法的局限性。

具體來說,您的視圖框架定義了它的origin{x,y}size{width,height}

這是一個簡單的矩形。

同樣,傳遞一個矩形作為繪制參數。

要使視圖表示比矩形更復雜的四邊形,必須編寫一些自定義幾何轉換(除非已經存在函數)。 有許多API可以緩解這種情況(例如NSBezierPath / UIBezierPath)。

最終,您需要一個足夠大以包含整個四邊形的框架。 當要求繪制一部分時,您可以確定要繪制的內容以及如何填充它。

由於要在矩形內有4個可移動點,因此必須定義4個點(例如CGPoint)-每個角一個。 使視圖的子類成為這些錯誤。 當它們更改時,請視情況使視圖無效。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM