iOS - 自定義 下彈框

具體封裝代碼
#pragma mark -- 懶加載
- (UIView *)popTopView {
    if (!_popTopView) {
        // 自定義彈框內(nèi)容
        _popTopView = [[UIView alloc] initWithFrame:CGRectMake(0, -SCREEN_HEIGHT_NO_STATUS / 2.0f, SCREEN_WIDTH_NO_STATUS, SCREEN_HEIGHT_NO_STATUS / 2.0f)];
        _popTopView.backgroundColor = [UIColor whiteColor];

        // 自定義彈框內(nèi)容
        UIView *titleView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, SCREEN_WIDTH, 64.0f)];
        titleView.backgroundColor = MAIN_TINT_COLOR;
        [_popTopView addSubview:titleView];
        
        UILabel *topTitleLabel = [[UILabel alloc] initWithFrame:CGRectMake(0, 20, SCREEN_WIDTH, 44.0f)];
        topTitleLabel.font = [UIFont systemFontOfSize:20.0];
        topTitleLabel.textAlignment = NSTextAlignmentCenter;
        topTitleLabel.textColor = [UIColor whiteColor];
        topTitleLabel.backgroundColor = [UIColor clearColor];
        topTitleLabel.text = @"切換工作室";
        [titleView addSubview:topTitleLabel];
        
        
    }
    return _popTopView;
}
- (UIView *)maskView {
    if (!_maskView) {
        _maskView = [[UIView alloc] initWithFrame:[UIScreen mainScreen].bounds];
        _maskView.backgroundColor = [UIColor colorWithWhite:0.000 alpha:0.400];
        _maskView.alpha = 0.0f;
        
        // 添加點(diǎn)擊背景按鈕
        UIButton *btn = [[UIButton alloc] initWithFrame:[UIScreen mainScreen].bounds];
        [btn addTarget:self action:@selector(close) forControlEvents:UIControlEventTouchUpInside];
        [_maskView addSubview:btn];
    }
    return _maskView;
}
- (void)openPopTopViewAction{ // 打開下拉彈框
    [[UIApplication sharedApplication].keyWindow addSubview:self.maskView];
    [[UIApplication sharedApplication].keyWindow addSubview:self.popTopView];
    
    [UIView animateWithDuration:0.25 animations:^{
        self.maskView.alpha = 1.0;
        self.popTopView.transform = CGAffineTransformTranslate(self.popTopView.transform, 0, SCREEN_HEIGHT_NO_STATUS / 2.0f);
    } completion:^(BOOL finished) {
        NSLog(@"%s", __func__);
    }];
}
- (void)close {
   // 關(guān)閉頂部視圖動(dòng)畫
    [UIView animateWithDuration:0.3 animations:^{
        self.maskView.alpha = 0.0;
        self.popTopView.transform = CGAffineTransformIdentity;
    }completion:^(BOOL finished) {
        [self.maskView removeFromSuperview];
        [self.popTopView removeFromSuperview];
    }];
}
具體的調(diào)用方法:

直接調(diào)用打開下拉彈框方法
[self openPopTopViewAction];
或者調(diào)用關(guān)閉彈框方法
[self close];

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢(shì)1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 179,021評(píng)論 25 709
  • ¥開啟¥ 【iAPP實(shí)現(xiàn)進(jìn)入界面執(zhí)行逐一顯】 〖2017-08-25 15:22:14〗 《//首先開一個(gè)線程,因...
    小菜c閱讀 7,327評(píng)論 0 17
  • 今天處理了兩件棘手的事情一個(gè)是跟公司創(chuàng)始人簽約退居二線另外一位非常在意職位的高管降職幸好結(jié)果還不錯(cuò)最后都實(shí)現(xiàn)了預(yù)期...
    承謙閱讀 230評(píng)論 0 0
  • 老院子有人老了不遠(yuǎn)處的院落起了哀樂同著每一次永遠(yuǎn)離去人后的哀樂聲發(fā)出在低矮的木板堂屋高高的烏瓦頂嘶喊 震顫 向...
    羅陸離閱讀 1,270評(píng)論 0 2
  • 一四、山棲是勝事 山棲是勝事,稍一縈戀,則亦市朝。書畫鑒賞是雅事,稍一貪癡,則亦商賈。詩酒是樂事,稍一曲人,...
    公子小白2020閱讀 394評(píng)論 0 0

友情鏈接更多精彩內(nèi)容