IOS Custom navigation Bar

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>

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.