導航欄中修改樣式:預設的的是左邊,右邊文字,但是我們想新的樣式怎麼辦呢?
老規則:自定義乙個類繼承button
重點:在uibutton中有幾個方法等待我們去實現:下面便是其中二個方法,只要去實現這個方法,回頭在方法中返回就能修改控制項的屬性
- (cgrect)titlerectforcontentrect:(cgrect)contentrect
-(cgrect)imagerectforcontentrect:(cgrect)contentrect
修改如下:
補充點:因為在修改的是,需要取出字型的屬性font,但取的時候會呼叫自身的titlerectforcontentrect方法,這樣就有了乙個死迴圈
解決的辦法就是:
#import "fltitilebutton.h"
@inte***ce fltitilebutton()
@property(nonatomic, strong) uifont *titlefont;
@end
@implementation fltitilebutton
/** * 不一定會呼叫這個方法,因此不知道是否是從xib檔案中載入來的
*///- (void)awakefromnib
///**
* 從檔案中解析乙個物件的時候,一定會呼叫initwithcoder這個方法
* */
- (id)initwithcoder:(nscoder *)decoder
return self;
}/**
* 控制內部label的frame
* * @param contentrect 按鈕自己的寬高
* */
- (cgrect)titlerectforcontentrect:(cgrect)contentrect
; cgfloat titlew = [self.currenttitle boundingrectwithsize:cgsizemake(maxfloat, maxfloat) options:nsstringdrawinguseslinefragmentorigin attributes:attr context:nil].size.width;
cgfloat titleh = contentrect.size.height;
return cgrectmake(titlex, titley, titlew, titleh);
}/**
* 控制內部imageview的frame
* * @param contentrect 按鈕自己的寬高
* */
-(cgrect)imagerectforcontentrect:(cgrect)contentrect
@end
彩票案例 開端
重要知識點 1 刪除main.storyboard中預設控制器,拖動tab bar controller 2 將子控制器刪除,換成導航控制器 3 拖線 在tab bar controller中右擊拖動controller到對應的每個controller 4 小技巧 控制按鈕的的狀態在android中...
彩票案例 指標型別 weak和strong
指標型別 1 以前所有控制項的型別都是weak型別,property nonatomic,weak uiimageview arrowview 2 這次轉換,採用strong型別,因為weak是弱指標,而弱指標使用完了記憶體就會 又因為這裡的使用場景是 在cell中每行的使用,不能採用弱指標,因為弱...
彩票案例 自定義裡面的button
小問題 當替換之後,自定義裡面的button已經改變,但是沒有改變高亮的時候的陰影,怎麼處理?原來是在button在高亮的時候做了複雜處理,而我們需要做的就是重新繼承,重寫這個方法 void sethighlighted bool highlighted方法重寫,然後不呼叫父類的方法 import ...