IOS Custom navigation Bar
Last Update:2016-01-04
Source: Internet
Author: User
<span id="Label3"></p><p><p>We create a new view, from the definition of the navigation bar, the following code:</p></p><p class="p1"><p class="p1"><span class="s1">#import <span class="s2"><UIKit/UIKit.h></span></span></p></p><p class="p3"><p class="p3"><span class="s3">@interface<span class="s2"> customnavigation: <span class="s4">UIView</span> </span></span></p></p><p class="p4"><p class="p4"><span class="s2">typedef<span class="s5"> <span class="s2">enum<span class="s5"> {</span> </span> </span></span></p></p><p class="p3"><p class="p3"><span class="s2">customEventClickLBtn1,<span class="s6">// <span class="s7">Click the leftmost button</span> </span></span></p></p><p class="p3"><p class="p3"><span class="s2">customEventClickRBtn1, <span class="s6">// <span class="s7">right-most button</span> </span></span></p></p><p class="p3"><p class="p3"><span class="s2">customEventClickLBtn2,<span class="s6">// <span class="s7">Click on the second button on the left</span> </span></span></p></p><p class="p3"><p class="p3"><span class="s2">CUSTOMEVENTCLICKRBTN2 <span class="s6">// <span class="s7">Click on the right-most left-hand button</span> </span></span></p></p><p class="p3"><p class="p3"><span class="s2">}customeventtype;</span></p></p><p class="p3"><p class="p3"><span class="s3">typedef<span class="s2"> <span class="s3">void<span class="s2">(^customblock) (<span class="s4">nsinteger<span class="s2"> indx);</span> </span> </span> </span> </span></span></p></p><p class="p3"><p class="p3"></p></p><p class="p1"><p class="p1"><span class="s1">/**</span></p></p><p class="p1"><p class="p1"><span class="s1">* <span class="s2">set <span class="s1">Rootctrl <span class="s2">'s <span class="s1">Navigation <span class="s2">left button</span> </span> </span> </span> </span></span></p></p><p class="p1"><p class="p1"><span class="s1">*/</span></p></p><p class="p2"><p class="p2"><span class="s1">-(<span class="s3">void<span class="s1">) customleftuserheadwithitem: (<span class="s4">uinavigationitem<span class="s1"> *) items block: (<span class="s4">customblock<span class="s1">) block;</span> </span> </span></span></span></span></span></p></p><p class="p2"><p class="p2"></p></p><p class="p1"><p class="p1"><span class="s1">/**</span></p></p><p class="p1"><p class="p1"><span class="s1">* <span class="s2">set <span class="s1"> <span class="s2">the <span class="s1">title <span class="s2">color</span> </span> of</span> Navigation</span> </span></span></p></p><p class="p1"><p class="p1"><span class="s1">*</span></p></p><p class="p1"><p class="p1"><span class="s1">* @param Navi <span class="s2">pass <span class="s1">self.navigationcontroller <span class="s2">.</span> </span> </span></span></p></p><p class="p1"><p class="p1"><span class="s1">*/</span></p></p><p class="p2"><p class="p2"><span class="s1">-(<span class="s3">void<span class="s1">) customnavigationtitle: (<span class="s4">uinavigationcontroller<span class="s1"> *) navi;</span> </span> </span> </span></span></p></p><p class="p2"><p class="p2"></p></p><p class="p1"><p class="p1"><span class="s1">/**</span></p></p><p class="p2"><p class="p2"><span class="s2">* <span class="s1">set <span class="s2">Navigation <span class="s1">return button for Universal White Back button</span> </span> </span></span></p></p><p class="p1"><p class="p1"><span class="s1">*</span></p></p><p class="p1"><p class="p1"><span class="s1">* @param navi <span class="s3">transfer <span class="s1">Self.navigationitem</span> </span></span></p></p><p class="p1"><p class="p1"><span class="s1">* @param block to <span class="s3">use when you click the Back button</span></span></p></p><p class="p1"><p class="p1"><span class="s1">*/</span></p></p><p class="p3"><p class="p3"><span class="s1">-(<span class="s4">void<span class="s1">) customnavigationback: (<span class="s5">uinavigationitem<span class="s1"> *) Navi block: (<span class="s5">customblock<span class="s1">) block;</span> </span> </span> </span></span></span></span></p></p><p class="p5"><p class="p5"><span class="s2"><span style="line-height: 1.5;">@end</span></span></p></p><p class="p4"><p class="p4"></p></p><p class="p4"><p class="p4"><span class="s2">------------------------------. m file--------------------------------------------</span></p></p><p class="p1"><p class="p1"><span class="s1">@implementation<span class="s2"> customnavigation{</span></span></p></p><p class="p1"><p class="p1"><span class="s2"><span class="s3">customblock<span class="s2"> leftblock;</span> </span></span></p></p><p class="p1"><p class="p1"><span class="s2"><span class="s3">customblock<span class="s2"> rightblock;</span> </span></span></p></p><p class="p2"><p class="p2"><span class="s4"><span class="s2">uinavigationitem<span class="s4"> *itme;</span> </span></span></p></p><p class="p1"><p class="p1"><span class="s2"><span class="s3">UIButton<span class="s2"> *leftbtn;</span> </span></span></p></p><p class="p1"><p class="p1"><span class="s2">}</span></p></p><p class="p3"><p class="p3"><span class="s2"></span></p></p><p class="p3"><p class="p3"><span class="s2"></span></p></p><p class="p1"><p class="p1"><span class="s2">-(<span class="s1">void<span class="s2">) customleftuserheadwithitem: (<span class="s3">uinavigationitem<span class="s2"> *) items block: (<span class="s3">customblock<span class="s2">) block{</span> </span> </span> </span> </span> </span></span></p></p><p class="p1"><p class="p1"><span class="s2"><span class="s5">leftblock<span class="s2"> = block;</span> </span></span></p></p><p class="p1"><p class="p1"><span class="s2"><span class="s5">itme<span class="s2"> = items;</span> </span></span></p></p><p class="p1"><p class="p1"><span class="s2"> <span class="s3">uiimageview<span class="s2"> *IMGV = [[ <span class="s3">uiimageview<span class="s2"> <span class="s5">alloc<span class="s2"> <span class="s5"> Initwithframe<span class="s2">:<span class="s5">cgrectmake<span class="s2"> (<span class="s1">0 <span class="s1" , <span>0<span class="s1" , <span>40<span class="s1" , <span>40 <span class="s2" ); < span> </span> </span> </span> </span> </span> </span> </span> </span> </span> </span> </span> </span> </span> </span></span></span></p></p><p class="p4"><p class="p4"><span class="s4">[IMGV <span class="s2">setimagewithurl<span class="s4">: [<span class="s3">nsurl<span class="s4"> <span class="s2">urlwithstring<span class="s4">: [<span class="s3">usermodel<span class="s4"> <span class="s2">sharemodel<span class="s4">]. <span class="s2"> Userhead<span class="s4">] <span class="s2">placeholderimage<span class="s4">:<span class="s6">imagenamed<span class="s4">(<span class="s7">@ "icondefulthead"<span class="s4">)];</span> </span> </span> </span> </span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></p></p><p class="p4"><p class="p4"><span class="s4"><span class="s2">leftbtn<span class="s4"> = [<span class="s3">UIButton<span class="s4"> <span class="s2">buttonwithtype<span class="s4">:<span class="s2">uibuttontypecustom<span class="s4">];</span> </span> </span> </span> </span></span></span></span></span></p></p><p class="p4"><p class="p4"><span class="s4">[<span class="s2">leftbtn<span class="s4"> <span class="s2">setframe<span class="s4">:<span class="s2">cgrectmake<span class="s4">(<span class="s1">0<span class="s4">, <span class="s1">0<span class="s4">, <span class="s1">+<span class="s4"> <span class="s1"><span class="s4">)];</span> </span> </span></span></span></span></span></span></span></span></span></span></span></span></span></p></p><p class="p4"><p class="p4"><span class="s4">[<span class="s2">leftbtn<span class="s4"> <span class="s2">addsubview<span class="s4">: imgv];</span> </span> </span> </span></span></p></p><p class="p1"><p class="p1"><span class="s2">[<span class="s3">viewfastory<span class="s2"> <span class="s5">filletview<span class="s2">: imgv];</span> </span> </span> </span></span></p></p><p class="p4"><p class="p4"><span class="s4">[<span class="s2">leftbtn<span class="s4"> <span class="s2">addTarget<span class="s4">:<span class="s1">self<span class="s4"> <span class="s2">action<span class="s4">:<span class="s1">@selector<span class="s4">(clickleftbutton) <span class="s2"> forControlEvents<span class="s4">:<span class="s2">uicontroleventtouchupinside<span class="s4">];</span> </span> </span> </span> </span> </span> </span> </span> </span> </span> </span> </span></span></span></span></p></p><p class="p3"><p class="p3"><span class="s2"></span></p></p><p class="p4"><p class="p4"><span class="s4"><span class="s2">itme<span class="s4">. <span class="s2"> Leftbarbuttonitem<span class="s4"> = [[<span class="s3">uibarbuttonitem<span class="s4"> <span class="s2">alloc<span class="s4">] <span class="s2">initwithcustomview<span class="s4">:<span class="s2">leftbtn <span class="s4">];</span></span></span></span></span></span></span></span></span></span></span></span></span></p></p><p class="p4"><p class="p4"><span class="s4">[<span class="s2">leftbtn<span class="s4"> <span class="s2">setuserinteractionenabled<span class="s4">:<span class="s1">YES<span class="s4">];</span> </span> </span> </span> </span> </span></span></p></p><p class="p1"><p class="p1"><span class="s2">}</span></p></p><p class="p3"><p class="p3"><span class="s2"></span></p></p><p class="p1"><p class="p1"><span class="s2">-(<span class="s1">void<span class="s2">) customnavigationtitle: (<span class="s3">uinavigationcontroller<span class="s2"> *) navi{</span> </span> </span> </span></span></p></p><p class="p4"><p class="p4"><span class="s4"> [navi.<span class="s2"> Navigationbar<span class="s4"> <span class="s2">settitletextattributes<span class="s4">:[<span class="s3"> Nsdictionary<span class="s4"> <span class="s2">dictionarywithobjectsandkeys<span class="s4">:[<span class="s3"> Uicolor<span class="s4"> <span class="s2">whitecolor<span class="s4">],<span class="s2"> Nsforegroundcolorattributename<span class="s4">,[<span class="s3">uifont<span class="s4"> <span class="s2"> Fontwithname<span class="s4">:<span class="s6">systemfontname<span class="s4"> <span class="s2">size <span class="s4">:<span class="s6">nav_fontsize<span class="s4">],<span class="s2">nsfontattributename <span class="s4">,<span class="s1">nil<span class="s4">] [</span> </span> </span> </span> </span> </span> </span> </span> </span> </span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span> </span></span></span></span></p></p><p class="p4"><p class="p4"><span class="s4">[navi. <span class="s2">navigationbar<span class="s4"> <span class="s2">setbackgroundimage<span class="s4">:<span class="s6">imagenamed<span class="s4">(<span class="s7">@ "navigationbg"<span class="s4">) <span class="s2">forbarmetrics <span class="s4">:<span class="s2">uibarmetricsdefault<span class="s4">];</span> </span> </span> </span> </span> </span> </span> </span> </span> </span> </span> </span></span></p></p><p class="p1"><p class="p1"><span class="s2">}</span></p></p><p class="p3"><p class="p3"><span class="s2"></span></p></p><p class="p1"><p class="p1"><span class="s2">-(<span class="s1">void<span class="s2">) customnavigationback: (<span class="s3">uinavigationitem<span class="s2"> *) Navi block: (<span class="s3">customblock<span class="s2">) block{ </span></span></span></span></span></span></span></p></p><p class="p4"><p class="p4"><span class="s4">[<span class="s1">self<span class="s4"> <span class="s2">customleftbtnwithnav<span class="s4">: Navi <span class="s2">imageName<span class="s4">:<span class="s7">@ "iconnavigationback"<span class="s4"> <span class="s2">block<span class="s4">: block];</span> </span> </span> </span> </span> </span> </span> </span> </span> </span></span></p></p><p class="p1"><p class="p1"><span class="s2">}</span></p></p><p class="p1"><p class="p1"><span class="s1">-(<span class="s2">void<span class="s1">) clickrightbutton{</span> </span></span></p></p><p class="p2"><p class="p2"><span class="s3"><span class="s1">rightblock<span class="s3">(<span class="s1">customEventClickRBtn1<span class="s3">);</span> </span> </span> </span></span></p></p><p class="p1"><p class="p1"><span class="s1">}</span></p></p><p class="p3"><p class="p3"><span class="s1"></span></p></p><p class="p1"><p class="p1"><span class="s1">-(<span class="s2">void<span class="s1">) clickmorebutton{</span> </span></span></p></p><p class="p2"><p class="p2"><span class="s3"><span class="s1">rightblock<span class="s3">(<span class="s1">customEventClickRBtn2<span class="s3">);</span> </span> </span> </span></span></p></p><p class="p1"><p class="p1"><span class="s1">}</span></p></p><p class="p3"><p class="p3"><span class="s1"></span></p></p><p class="p1"><p class="p1"><span class="s1">-(<span class="s2">void<span class="s1">) clickleftbutton{</span> </span></span></p></p><p class="p2"><p class="p2"><span class="s3"><span class="s1">leftblock<span class="s3">(<span class="s1">customEventClickLBtn1<span class="s3">);</span> </span> </span> </span></span></p></p><p class="p1"><p class="p1"><span class="s1">}</span></p></p><p class="p3"><p class="p3"><span class="s1"></span></p></p><p class="p1"><p class="p1"><span class="s1">-(<span class="s2">void<span class="s1">) clicktabbutton{</span> </span></span></p></p><p class="p2"><p class="p2"><span class="s3"><span class="s1">leftblock<span class="s3">(<span class="s1">customEventClickLBtn2<span class="s3">);</span> </span> </span> </span></span></p></p><p class="p1"><p class="p1"><span class="s1">}</span></p></p><p class="p1"><p class="p1"></p></p><p class="p1"><p class="p1"><span class="s1">The next step is to write in the interface where you need to write the navigation bar:</span></p></p><p class="p1"><p class="p1"><span class="s1">@implementation<span class="s2"> detailstaskctrl{</span></span></p></p><p class="p1"><p class="p1"><span class="s2"><span style="line-height: 1.5;"> </span> <span class="s3" style="line-height: 1.5;">customnavigation<span class="s2"> *customnav;//must be defined here as a property oh, otherwise, the button you wrote won't Work.</span> </span></span></p></p><p class="p1"><p class="p1"><span class="s2">}</span></p></p><p class="p1"><p class="p1">-(void) loadnav{</p></p><p class="p1"><p class="p1"><span class="s1"><span class="s2">Customnav<span class="s1"> = [<span class="s3">customnavigation<span class="s1"> <span class="s2">new<span class="s1">];</span> </span> </span> </span> </span> </span></span></p></p><p class="p2"><p class="p2"><span class="s1">[<span class="s3">customnav<span class="s1"> <span class="s3">customnavigationback<span class="s1">:<span class="s4">self<span class="s1">. <span class="s3"> Navigationitem<span class="s1"> <span class="s3">block<span class="s1">: ^ (<span class="s5">nsinteger<span class="s1"> Index) {</span> </span> </span> </span> </span> </span> </span> </span></span></span></span></span></span></p></p><p class="p3"><p class="p3"><span class="s3">if (index = = CustomEventClickLBtn1) {</span></p></p><p class="p2"><p class="p2"><span class="s1">[<span class="s4">self<span class="s1">. <span class="s3"> Navigationcontroller<span class="s1"> <span class="s3">popviewcontrolleranimated<span class="s1">:<span class="s4">YES<span class="s1">];</span> </span> </span> </span> </span> </span> </span> </span></span></p></p><p class="p2"><p class="p2"><span class="s1"><span class="s4"><span class="s1"><span class="s3"><span class="s1"><span class="s3"><span class="s1"><span class="s4"><span class="s1">}</span></span></span></span></span></span></span></span></span></p></p><p class="p3"><p class="p3"><span class="s3">}];</span></p></p><p class="p3"><p class="p3"><span class="s3">}</span></p></p><p class="p3"><p class="p3"></p></p><p class="p3"><p class="p3"><span class="s3">Today is a deep blow, to the company one months, to now have not signed a formal contract for me, the demand for wages is just a fresh birth of wages ah. but the personnel manager said that there was no me in the Company's file. there's a technical seminar today, and android, ios,</span></p></p><p class="p3"><p class="p3"><span class="s3">I am also ios, ah, Why also deliberately said I do not have to go. is not before you can not power, other people's eyes can not enter?</span></p></p><p><p>IOS Custom navigation Bar</p></p></span>