cari

Rumah  >  Soal Jawab  >  teks badan

c - 罕见的创建视图的方法,求指教

创建视图的方法,但是很诡异,看不懂是什么意思,求大神指教

代码如下:

 UIView *cancel = ({
                    

                    UIButton *view= [UIButton new];
                    view.contentHorizontalAlignment=UIControlContentHorizontalAlignmentLeft;
                    [view setTitle:NSLocalizedString(@"cancel", nil) forState:UIControlStateNormal];
                    [view setTitleColor:Global_trelloBlue forState:UIControlStateNormal];
                    view.titleLabel.font = [UIFont systemFontOfSize:15];
                    [createListView addSubview:view];
                    view.tag = 999;
                    [view makeConstraints:^(MASConstraintMaker *make) {
                        make.left.equalTo(20);
                        make.bottom.equalTo(-1);
                        make.width.equalTo(100);
                    }];
                    [view sizeToFit];
                    view.alpha = 0;
                    [self layoutIfNeeded];
                    //cancel点击事件
                    @weakify(self, view, textView, createListView, listView, add, addCard)
                    [[view rac_signalForControlEvents:UIControlEventTouchUpInside] subscribeNext:^(id x) {
                        @strongify(self, view, textView, createListView, listView, add, addCard)
                        //footer高度还原
                        [createListView updateConstraints:^(MASConstraintMaker *make) {
                            make.height.equalTo(44);
                        }];
                        //list减去footer增加的高度(在这里做是为了动效)
                        [listView updateConstraints:^(MASConstraintMaker *make) {
                            make.height.equalTo(listView.yyHeight-44);
                        }];
                     
                        //隐藏textView
                        textView.alpha = 0;
                        
                        [UIView animateWithDuration:0.25 animations:^{
                            //cancel隐藏
                            view.alpha = 0;
                            //add隐藏
                            add.alpha = 0;
                            //addCard显示
                            addCard.alpha = 1;
                            [self.viewController.navigationController setNavigationBarHidden:NO animated:YES];
                            [self layoutIfNeeded];
                        }];
                        [textView resignFirstResponder];
                    }];
                    view;
                });
怪我咯怪我咯2757 hari yang lalu458

membalas semua(1)saya akan balas

  • 習慣沉默

    習慣沉默2017-05-02 09:31:47

    Adakah pelik? Ini yang saya salin...
    Parameter addSubview diletakkan dalam blok kod "({})" dan penciptaan dan tetapan atribut paparan diselesaikan dalam "({ })" , ayat terakhir blok kod ialah subview yang ingin kami tambahkan.

    Kaedah penulisan ini mengikut ciri GNU C iaitu pernyataan majmuk. Iaitu, dalam blok kod "({})", kita boleh meletakkan berbilang kenyataan, yang boleh menjadi gelung, cawangan, pengisytiharan berubah-ubah, panggilan fungsi, dsb. Ayat terakhir pernyataan majmuk ialah ungkapan, yang berfungsi sebagai nilai akhir bagi keseluruhan pernyataan majmuk.

    Apabila menulis kod Objektif-C, menggunakan pernyataan majmuk boleh menjadikan kod kami lebih elegan, terutamanya apabila mencipta dan menambah sekumpulan subview, ia boleh menjadikan kod kami kelihatan lebih bersih. Disyorkan untuk kegunaan biasa.
    Laman web

    balas
    0
  • Batalbalas