IOS11 navigation bar Leftbarbuttonitem display Abnormal

Source: Internet
Author: User
<span id="Label3"></p><style><style>p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px ".PingFang SC"; color: #454545 }p.p2 { margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px "Helvetica Neue"; color: #454545 }span.s1 { font: 12.0px ".PingFang SC" }span.s2 { font: 12.0px "Helvetica Neue" }</style></style><p class="p1"><p class="p1"><span style="font-size: 16px">If you follow the System's own method of writing no problem, The code is as Follows:</span></p></p><p class="p2"><p class="p2"><span style="font-size: 18px"><span style="font-size: 16px">uibarbuttonitem* Leftitem</span> = <span class="s1" style="font-size: 16px">[[uibarbuttonitem alloc<span class="s1">] </span> </span> </span> <span class="s1"><span class="s1">initwithimage</span></span><span style="font-size: 16px"><span class="s1"><span class="s1">: </span></span></span> <span class="s1" style="font-size: 18px"><span class="s1"><span class="s1">[[UIImage imagenamed:@ "default"<span class="s1">]</span> </span></span></span></p></p><p class="p2"><p class="p2"><span class="s1" style="font-size: 18px"><span class="s1"><span class="s1"><span class="s1">Imagewithrenderingmode:uiimagerenderingmodealwaysoriginal<span class="s1">]</span></span></span></span></span></p></p><p class="p2"><p class="p2"><span class="s1" style="font-size: 18px"><span class="s1"><span class="s1"><span class="s1"><span class="s1">Style:UIBarButtonItemStylePlaintarget:self action: @selector<span class="s1">(leftitemaction<span class="s1">)];</span> </span></span></span></span></span></span></p></p><p class="p2"><p class="p2"><span style="font-size: 16px">self.navigationitem.leftbarbuttonitem= Leftitem<span class="s1">;</span></span></p></p><p class="p1"><p class="p1"><span style="font-size: 16px">But the displayed picture is the User's avatar, is a URL link that can be modified at any time, when the system comes with the method can not be satisfied,</span></p></p><p class="p1"><p class="p1"><span style="font-size: 16px">You must use a custom code as Follows:</span></p></p><p class="p1"><p class="p1"><span class="s2" style="font-size: 16px">//_PERSONALBTN is the current controller property value because the user needs to refresh when modifying the image (third-party libraries are required</span> <span class="s2"> <span class="s2">sdwebimage<span style="font-size: 16px">)</span> </span></span></p></p><p class="p2"><p class="p2"><span style="font-size: 16px">_personalbtn= <span class="s1">[uibuttonbuttonwithtype:uibuttontypecustom<span class="s1">];</span> </span></span></p></p><p class="p2"><p class="p2"><span style="font-size: 16px">_personalbtn.frame=cgrectmake<span class="s1">(0<span class="s1">, 0, (+), +<span class="s1"><span class="s1"><span class="s1">);</span> </span> </span> </span> </span></span></p></p><p class="p2"><p class="p2"><span class="s1" style="font-size: 16px">[_PERSONALBTN sd_setimagewithurl:<span class="s1">[nsurl urlwithstring:_model.headurl<span class="s1">]</span> </span></span></p></p><p class="p2"><p class="p2"><span class="s1" style="font-size: 16px"><span class="s1"><span class="s1">Forstate:uicontrolstatenormal placeholderimage:<span class="s1">[uiimageimagenamed:@ "ev_circle_default"<span class="s1">];</span> </span></span></span></span></p></p><p class="p2"><p class="p2"><span style="font-size: 16px">_personalbtn.layer.maskstobounds=yes<span class="s1">;</span></span></p></p><p class="p2"><p class="p2"><span style="font-size: 16px">_PERSONALBTN.LAYER.CORNERRADIUS=40/2<span class="s1">;</span></span></p></p><p class="p2"><p class="p2"><span class="s1" style="font-size: 16px">[_PERSONALBTN addtarget:selfaction: @selector<span class="s1">(leftitemaction<span class="s1">) forcontrolevents: UIControlEventTouchUpInside<span class="s1">];</span> </span> </span></span></p></p><p class="p2"><p class="p2"><span style="font-size: 16px">uibarbuttonitem* Leftitem = <span class="s1">[[uibarbuttonitem alloc<span class="s1">] initwithcustomview:_personalbtn<span class="s1">];</span> </span> </span></span></p></p><p class="p2"><p class="p2"><span style="font-size: 16px">self.navigationitem.leftbarbuttonitem= Leftitem<span class="s1">;</span></span></p></p><p class="p1"><p class="p1"><span style="font-size: 16px">Shown Below:</span></p></p><p class="p1"><p class="p1"><span style="font-size: 16px"></span></p></p><p class="p1"><p class="p1"></p></p><p class="p1"><p class="p1"></p></p><p class="p1"><p class="p1"><span style="font-size: 16px">Now the display is normal, possibly because there is this code _personalbtn.frame=cgrectmake<span class="s1">(0<span class="s1">, 0<span class="s1">, max, +<span class="s1"><span class="s1">);</span> </span> </span> </span> </span></span></p></p><p class="p1"><p class="p1"><span class="s1" style="font-size: 16px"><span class="s1"><span class="s1"><span class="s1"><span class="s1"><span style="font-size: 16px">when you go back to other pages, it will appear as follows</span> :</span></span></span></span></span></p></p><p class="p1"><p class="p1"><span class="s1" style="font-size: 16px"><span class="s1"><span class="s1"><span class="s1"><span class="s1"></span></span></span></span></span></p></p><p class="p1"><p class="p1"><span style="font-size: 16px">Even the title is gone, is not very wonderful, change to Uiimageview is also so.</span></p></p><p class="p1"><p class="p1"><strong><span style="font-size: 16px">Workaround code:</span></strong></p></p><style><style>p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px "Helvetica Neue"; color: #454545 }p.p2 { margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px "Helvetica Neue"; color: #454545; min-height: 14.0px }span.s1 { font: 12.0px ".PingFang SC" }</style></style><p class="p1"><p class="p1"><span class="Apple-converted-space"><span style="font-size: 16px">UIView *view = <span class="s1">[[UIView alloc<span class="s1">] initwithframe:cgrectmake<span class="s1">(0<span class="s1">, 0<span class="s1">, (+<span class="s1"><span class="s1">))];</span> </span> </span> </span> </span></span></span></span></span></p></p><p class="p1"><p class="p1"><span class="Apple-converted-space" style="font-size: 16px">View.backgroundcolor = <span class="s1">[uicolor clearcolor<span class="s1">];</span> </span></span></p></p><p class="p2"><p class="p2"><span class="Apple-converted-space" style="font-size: 16px"></span></p></p><p class="p1"><p class="p1"><span class="Apple-converted-space" style="font-size: 16px">_PERSONALBTN = <span class="s1">[UIButton buttonwithtype:uibuttontypecustom<span class="s1">];</span> </span></span></p></p><p class="p1"><p class="p1"><span class="Apple-converted-space" style="font-size: 16px">_personalbtn.frame = CGRectMake<span class="s1">(0<span class="s1">, 0<span class="s1">, (+<span class="s1"><span class="s1">);</span> </span> </span> </span> </span></span></p></p><p class="p1"><p class="p1"><span class="Apple-converted-space" style="font-size: 16px"><span class="s1">[_personalbtn sd_setimagewithurl:<span class="s1">[nsurl urlwithstring:_model.headurl<span class="s1">] Forstate: UIControlStateNormal</span> </span> </span></span></p></p><p class="p1"><p class="p1"><span class="Apple-converted-space" style="font-size: 16px"><span class="s1"><span class="s1"><span class="s1">Placeholderimage:<span class="s1">[UIImage imagenamed:@ "ev_circle_default"<span class="s1">];</span> </span></span></span></span></span></p></p><p class="p1"><p class="p1"><span class="Apple-converted-space" style="font-size: 16px">_personalbtn.layer.maskstobounds = YES<span class="s1">;</span></span></p></p><p class="p1"><p class="p1"><span class="Apple-converted-space" style="font-size: 16px">_personalbtn.layer.cornerradius = 40/2<span class="s1">;</span></span></p></p><p class="p1"><p class="p1"><span class="Apple-converted-space" style="font-size: 16px"><span class="s1">[_personalbtn addtarget:self action: @selector<span class="s1">(leftitemaction<span class="s1">) forcontrolevents: UIControlEventTouchUpInside<span class="s1">];</span> </span> </span> </span></span></p></p><p class="p1"><p class="p1"><span class="Apple-converted-space" style="font-size: 16px"><span class="s1">[view addsubview:_personalbtn<span class="s1">];</span> </span></span></p></p><p class="p2"><p class="p2"><span style="font-size: 16px"></span></p></p><p class="p1"><p class="p1"><span class="Apple-converted-space" style="font-size: 16px">Uibarbuttonitem * Leftitem = <span class="s1">[[uibarbuttonitem alloc<span class="s1">] initwithcustomview:view<span class="s1">];</span> </span> </span></span></p></p><p class="p1"><p class="p1"> <span style="font-size: 16px">self.navigationitem.leftbarbuttonitem= Leftitem<span class="s1">;</span></span></p></p><p class="p1"><p class="p1"><span class="s1" style="font-size: 16px">As to why the resolution, I also do not understand, may be the size of the view limit the size of the btn, thank you for browsing, if you find the reason for this, please enlighten</span></p></p><p><p>IOS11 navigation bar Leftbarbuttonitem display Abnormal</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.