關於重寫UITextField的問題

2021-07-22 18:06:00 字數 1116 閱讀 2328

今天重寫了乙個uitextfield,對於以下幾個方面做乙個總結:

1、在設定

uitextfield

的leftview

或rightview

時,經常需要根據實際的

ui設計調整位置,例如系統本身的

rightview

緊貼著textfield

右側,這樣不太好看,這裡有兩種解決方法,需要根據

rightview

的樣式決定來使用哪一種。

/**

重寫設定

rigntview

的位置函式*/

- (cgrect

)rightviewrectforbounds:(

cgrect

)bounds

該方法使得

rightview

距離textfield

右側有了

10畫素的距離。

還有一種方法比較簡單,但是有限制:

view.

contentmode

= uiviewcontentmodecenter;

就是設定

contentmode

為center

,並且將

rightview

(自定義控制項)的寬度比原來大一些,越大距離右側越遠。

這種方法對於設定沒有背景或者背景色與

textfield

一致的,有邊框也不可以。因為該方法實際上並沒有改變

rightview

與textfield

的距離,而是將

rightview

撐大,顯得裡面的文字或與

textfield

有一段距離。

2、另外我們在開發中經常因為文字框空值或者輸入錯誤對文字框做一些提醒操作,下面是控制項抖動效果

// 控制項抖動效果

-(void

)shakeview:(

uiview

*)viewtoshake

completion

:^(bool

finished)

completion

:null];

} }]; }

關於方法重寫

方法重寫的定義 子類中如果建立了乙個與父類中相同名稱 相同返回值型別 相同引數列表的方法,只是方法體中的實現不同,以實現不同於父類的功能,這種方式被稱為方法重寫 override 又稱為方法覆蓋。當父類中的方法無法滿足子類需求或子類具有特有功能的時候,需要方法重寫。方法重寫的要求 兩同兩小一大 1....

關於繼承與重寫

header content type text html charset utf 8 繼承,它是指建立乙個新的派生類,從乙個或多個先前定義的類中繼承資料和函式,而且可以重新定義或加進新資料和函式,從而建立了類的層次或等級。說的簡單點就是,繼承性是子類自動共享父類資料結構和方法的機制,在軟體開發中,...

關於 重寫 和 覆蓋。

最開始 覺得沒區別 看了篇文章後發現有區別。就是在當用子類建立父類的時候就有區別了 直接用別人的了 public classc1 public class c2 c1 c1 c1 new c1 console.writeline c1.getname 輸出 徐明祥 c2 c2 new c2 cons...