其實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...