iOS xibView的理解

xib的運用

引言: xibView 很好用, 節(jié)省很大的時間去寫UI, 我們可以把更多的精力去寫業(yè)務獲取其他內容, 而不應該把大把的時間花在創(chuàng)建UI上面.
xib:主要有動畫,和拉約束, 相對于代碼來說的難點. 其他我覺得都比較好.

.h 文件


@interface MDJPayView : UIView

@property (nonatomic, weak) UIView *supV;

+ (instancetype)mzy_xibView; // 為什么用這個 

- (void)configDefaultConstraints;

- (void)show;

- (void)dismiss;

@end

.m 文件

import "MDJPayView.h"
#import "Masonry.h"

#define kScreenH ([[UIScreen mainScreen]bounds].size.height)
#define kScreenW ([[UIScreen mainScreen]bounds].size.width)

@interface MDJPayView ()

@property (weak, nonatomic) IBOutlet UIButton *bgBtn;

@property (weak, nonatomic) IBOutlet UIView *mainView;

@end

@implementation MDJPayView

- (void)dealloc {
    
    NSLog(@"-------MDJPayView 釋放--------");
}


// 這個方法少用
- (instancetype) initWithFrame:(CGRect)frame {
    
    if (self = [super initWithFrame:frame]) {
        NSLog(@"----initWithFrame-----");
        self = [[[NSBundle mainBundle] loadNibNamed:@"MDJPayView" owner:nil options:nil]firstObject];
        self.frame = frame;
    }
    return self;
}

// 這個方法多用 因為看 dealloc 打印你就知道了
+ (instancetype)mzy_xibView
{
    return [[[NSBundle mainBundle] loadNibNamed:@"MDJPayView" owner:nil options:nil]firstObject];
}


- (void)configDefaultConstraints {
    
    self.mainView.frame = CGRectMake(0, kScreenH, kScreenW, 20);
}


- (void)show {
    
    if (self.supV) {
        [self.supV addSubview:self];
    }
    else {
        [[UIApplication sharedApplication].keyWindow addSubview:self];
    }
    
    [self mas_makeConstraints:^(MASConstraintMaker *make) {
        make.edges.equalTo(self.superview).insets(UIEdgeInsetsMake(0, 0, 0, 0));
    }];
    
    
    self.backgroundColor = [[UIColor darkGrayColor] colorWithAlphaComponent:0.f];
    [UIView animateWithDuration:0.3 animations:^{
        self.backgroundColor = [[UIColor darkGrayColor] colorWithAlphaComponent:0.3f];
        self.mainView.frame = CGRectMake(0, kScreenH - 400, kScreenW, 400);
        
    } completion:^(BOOL finished) {
        
    }];
     
}

- (void)dismiss {
   
    [UIView animateWithDuration:0.3 animations:^{
        self.backgroundColor = [[UIColor darkGrayColor] colorWithAlphaComponent:0.f];
        self.mainView.frame = CGRectMake(0, kScreenH, kScreenW, 400);
        [self.mainView layoutIfNeeded];
    
    } completion:^(BOOL finished) {
        [self removeFromSuperview];
    }];
}

- (IBAction)bgBtnAction:(id)sender {
    
    [self dismiss];
}

@end

試圖控制器掉用

   MDJPayView *payView = [MDJPayView mzy_xibView];
    
    payView.supV = self.view;

    [payView configDefaultConstraints];

    [payView show];
    
    
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
  • 序言:七十年代末遂铡,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子晶姊,更是在濱河造成了極大的恐慌扒接,老刑警劉巖,帶你破解...
    沈念sama閱讀 219,539評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現場離奇詭異珠增,居然都是意外死亡超歌,警方通過查閱死者的電腦和手機,發(fā)現死者居然都...
    沈念sama閱讀 93,594評論 3 396
  • 文/潘曉璐 我一進店門蒂教,熙熙樓的掌柜王于貴愁眉苦臉地迎上來巍举,“玉大人,你說我怎么就攤上這事凝垛“妹酰” “怎么了?”我有些...
    開封第一講書人閱讀 165,871評論 0 356
  • 文/不壞的土叔 我叫張陵梦皮,是天一觀的道長炭分。 經常有香客問我,道長剑肯,這世上最難降的妖魔是什么捧毛? 我笑而不...
    開封第一講書人閱讀 58,963評論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮让网,結果婚禮上呀忧,老公的妹妹穿的比我還像新娘。我一直安慰自己溃睹,他們只是感情好而账,可當我...
    茶點故事閱讀 67,984評論 6 393
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著因篇,像睡著了一般泞辐。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上竞滓,一...
    開封第一講書人閱讀 51,763評論 1 307
  • 那天咐吼,我揣著相機與錄音,去河邊找鬼商佑。 笑死汽烦,一個胖子當著我的面吹牛,可吹牛的內容都是我干的莉御。 我是一名探鬼主播撇吞,決...
    沈念sama閱讀 40,468評論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼礁叔!你這毒婦竟也來了牍颈?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 39,357評論 0 276
  • 序言:老撾萬榮一對情侶失蹤琅关,失蹤者是張志新(化名)和其女友劉穎煮岁,沒想到半個月后讥蔽,有當地人在樹林里發(fā)現了一具尸體,經...
    沈念sama閱讀 45,850評論 1 317
  • 正文 獨居荒郊野嶺守林人離奇死亡画机,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 38,002評論 3 338
  • 正文 我和宋清朗相戀三年冶伞,在試婚紗的時候發(fā)現自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片步氏。...
    茶點故事閱讀 40,144評論 1 351
  • 序言:一個原本活蹦亂跳的男人離奇死亡响禽,死狀恐怖,靈堂內的尸體忽然破棺而出荚醒,到底是詐尸還是另有隱情芋类,我是刑警寧澤,帶...
    沈念sama閱讀 35,823評論 5 346
  • 正文 年R本政府宣布界阁,位于F島的核電站侯繁,受9級特大地震影響,放射性物質發(fā)生泄漏泡躯。R本人自食惡果不足惜贮竟,卻給世界環(huán)境...
    茶點故事閱讀 41,483評論 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望较剃。 院中可真熱鬧坝锰,春花似錦、人聲如沸重付。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,026評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽确垫。三九已至,卻和暖如春帽芽,著一層夾襖步出監(jiān)牢的瞬間删掀,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,150評論 1 272
  • 我被黑心中介騙來泰國打工导街, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留披泪,地道東北人。 一個月前我還...
    沈念sama閱讀 48,415評論 3 373
  • 正文 我出身青樓搬瑰,卻偏偏與公主長得像款票,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子泽论,可洞房花燭夜當晚...
    茶點故事閱讀 45,092評論 2 355

推薦閱讀更多精彩內容

  • 引言 學到這里艾少,xib給我?guī)淼膸椭呀浐艽罅耍畲蟮哪^于UI控件的創(chuàng)建翼悴、屬性的賦值再也不用寫代碼缚够,就UI開發(fā)來...
    二亮子閱讀 7,239評論 41 82
  • 引言 本來“一天一點xib”系列就九篇文章谍椅,但在留言中有一個朋友提出了兩點疑問: 1.為什么獲得重用cell的時候...
    二亮子閱讀 11,815評論 24 102
  • 大多數Ios開發(fā)者都喜歡運用xib以及約束來布局误堡,這樣省去了大量初始化代碼,但是xib的使用也是存在不少差異的: ...
    Hanser0503閱讀 9,672評論 1 6
  • 引言 這兩天突然想起之前看到過有的項目中用到了object, 好奇心起,就順便回溯下xib的使用吧 xib優(yōu)缺點分...
    舞動夢想閱讀 1,959評論 0 3
  • 水泥堆砌的墻壁 冰冷冷的像停尸房的尸體 啟明星不見了的清晨 濃霧打濕了車水馬龍 后視鏡里看不見曲折的路 窗簾涂抹的...
    云牧1閱讀 111評論 0 1