關於iOS Tabbar的一些設定

2021-07-08 09:54:34 字數 4012 閱讀 1718

其實ios tabbar的可定製性非常高,我們沒有必要重複造輪子,下面是筆者收集的一些tabbar的常用設定,希望對大家有所幫助。

設定tabbar選中顏色

ios7設定如下:

[self

.tabbarcontroller.tabbar

setselectedimagetintcolor

:[uicolorgreencolor

]];

ios8中如下設定:

self.tabbar.tintcolor=[uicolor greencolor];

消除tabbar邊框

設定tabbar item原始圖示與原始選中圖示,而不是系統自動填充的顏色

[objc]view plain

copy

print?

// 拿到 tabbar 在拿到想應的item

uitabbar

*tabbar = _tabbarcontroller

.tabbar

;  uitabbaritem

*item

0= [tabbar

.items

objectatindex:0

];  

uitabbaritem

*item

1= [tabbar

.items

objectatindex:1

];  

uitabbaritem

*item

2= [tabbar

.items

objectatindex:2

];  

uitabbaritem

*item

3= [tabbar

.items

objectatindex:3

];  

// 對item設定相應地

item0

.selectedimage

= [[uiimage

imagenamed

:@"recognize-1"

]imagewithrenderingmode

:uiimagerenderingmodealwaysoriginal];;  

item0

.image

= [[uiimage

imagenamed

:@"recognize"

]imagewithrenderingmode

:uiimagerenderingmodealwaysoriginal];  

item1

.selectedimage

= [[uiimage

imagenamed

:@"life-1"

]imagewithrenderingmode

:uiimagerenderingmodealwaysoriginal];;  

item1

.image

= [[uiimage

imagenamed

:@"life"

]imagewithrenderingmode

:uiimagerenderingmodealwaysoriginal];  

item2

.selectedimage

= [[uiimage

imagenamed

:@"edit-1"

]imagewithrenderingmode

:uiimagerenderingmodealwaysoriginal];;  

item2

.image

= [[uiimage

imagenamed

:@"edit"

]imagewithrenderingmode

:uiimagerenderingmodealwaysoriginal];  

item3

.selectedimage

= [[uiimage

imagenamed

:@"setting-1"

]imagewithrenderingmode

:uiimagerenderingmodealwaysoriginal];;  

item3

.image

= [[uiimage

imagenamed

:@"setting"

]imagewithrenderingmode

:uiimagerenderingmodealwaysoriginal];  

設定tabbar背景

[objc]view plain

copy

print?

uiview

*backview = [[uiview

alloc

]initwithframe

:cgrectmake(0, 

0, main_screen_width, 49

)];  

backview.backgroundcolor

= [uicolor

redcolor

];  

[self

.tabbar

insertsubview

:backview

atindex:0

];  

self

.tabbar

.opaque

= yes

;  

設定tabbar item選中時的背景

1、5.0以上版本

[objc]view plain

copy

print?

self

.tabbar

.selectionindicatorimage

= [uiimage

imagenamed

:@"system_tabbar_item_selected.png"

];  

2、5.0以下版本

首先實現如下方法

[objc]view plain

copy

print?

- (void

)setnohighlisttabbar:(

uitabbarcontroller

*)tabbarcontroller  

else

if([tabbarcontroller

.viewcontrollers

count

] > 

5)  

else

if([tabbarsubviews

count

] < index

4selview+

1)  

uiview

* selview = [tabbarsubviews

objectatindex

:index

4selview];  

nsarray

* selviewsubviews = [selview

subviews

];  

for(

uiview

* v in selviewsubviews)  

}  }  

改方法的實質就是迴圈tabbar的subviews, 找到tabbar中的這個view, 是乙個uitabbarselectionindicatorview的view,然後把它替換成你自己建立的uiimageview, 上例中的self.selecteditembgimageview.

然後需要把uitabbarcontroller的delegate設為self, 在tabbarcontroller:didselectviewcontroller的**方法中執行上面的方法:[self setnohighlisttabbar:self];

還有setselectindex:方法中也要執行[self setnohighlisttabbar:self];

關於一些iOS開發中容易忽略的一些屬性設定

ios 開發手記 ios私有方法 我們有時會遇到,希望某個類的方法不能被它的繼承類所繼承,這個時候我們就要用到私有方法,所謂的私有方法就是把方法不寫在標頭檔案.h裡面而是寫在.m中,這樣別人不能直接呼叫,例子如下。假設現有的類為myclass 在類的標頭檔案 為 inte ce myclass vo...

關於RemoteView 的一些字型的一些問題

最近在做乙個 在notification 新增 天氣通知的小部分 發現困擾在 如何給 remoteview 中的字型 作修改 大家都知道 textview 設定字型 在xml 中 可以 設定 3種 而其他字型的設定 需要通過 typeface 去設定 具體 將字型放置在asset 資料夾中 type...

Windows安裝Apache後的一些設定

windows在開啟防火牆後讓其他電腦ping通本機 1.開啟控制面板 系統和安全 windows防火牆 高階設定 入站規則 2.找到檔案和印表機共享 回顯請求 icmpv4 ln 2個,ipv4的 3.右鍵啟用規則就可以ping通了 區域網無法通過192.168.x.x的方式訪問伺服器 403 1...