多數情況下, 系統原生控制項太醜, 無法滿足我們的需求. 那麼系統控制項如何修改呢?
思路:
需求: 更改badgevalue的系統背景
檢視檢視層級結構, 找到其view對應的位置
那麼接下來我們的任務是一層一層剝開它的心
從列印結果中找到我們需要的下一層 uitabbarbuttonfor tabbarchild in (self.tabbarcontroller?.tabbar
.subviews)!
列印結果為:for tabbarchild in (self.tabbarcontroller?.tabbar
.subviews)!
}
下一步目標為_uibadgeview, 所以我們繼續遍歷
列印結果為:for tabbarchild in (self.tabbarcontroller?.tabbar
.subviews)!}}
}
下一步目標: _uibadgebackground
想要賦值, 屬性點不出來怎麼辦? 使用kvcfor tabbarchild in (self.tabbarcontroller?.tabbar
.subviews)!}}}}}
kvc: 知道value不知道key怎麼辦? 使用執行時
執行時可以獲取乙個物件身上的成員變數
注: 關鍵點在如何獲取成員變數列表;// 用於記錄獲取回來的成員變數是有多少個
var count: uint32 = 0
// 通過執行時候,獲取其身上的成員變數
// 引數1:傳入 class,引數2: 傳入乙個指標,記錄個數
let ivars = class_copyivarlist(nsclassfromstring("_uibadgebackground")!, &count)
// 遍歷成員變數的列表
for i in
0..// 取到對應位置的值
let ivar = ivars[int(i)]
// 獲取其名字
let name = ivar_getname(ivar)
lettype = ivar_gettypeencoding(ivar)
// 轉 nsstring
let namestring = nsstring(cstring: name, encoding: nsutf8stringencoding)
let typestring = nsstring(cstring: type, encoding: nsutf8stringencoding)
printlog("\(namestring)====\(typestring)")
// 判斷其對應屬性, 通過 kvc 賦值其值
if namestring!.isequaltostring("_image")
執行時有木有好強大
如何修改Delphi自帶控制項
舉例說明 比如要在dialogs單元新增乙個新的函式proc superbirdxp 1 備份delphi的lib目錄中的dialogs.dcu檔案 source目錄中的dialogs.pas檔案。2 新建乙個資料夾比如 delphifolder 2 將source中的dialogs.pas檔案拷貝...
CentOS系統如何修改語言
日常中大家在使用centos過程都會因為英文不熟悉而造成不方便,今天數脈科技就位大家介紹centos系統如何修改語言。centos6系統修改語言方法如下 1.用root登入系統,密碼為建立虛擬機器時候的密碼。建立虛擬機器的時候使用的使用者名為 admin,密碼 admin 這個時候用root adm...
修改控制項屬性
1 frame 能修改位置和尺寸。2 center 修改位置。3 bounds 能修改尺寸。4 tansform 能修改尺寸 位置和旋轉角度。一 新增按鈕及修改按鈕屬性。建立按鈕 uibutton btn uibutton alloc init 新增按鈕 self.view addsubview b...