创建视图的方法,但是很诡异,看不懂是什么意思,求大神指教
代码如下:
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;
});
習慣沉默2017-05-02 09:31:47
이상한가요? 제가 복사한게...
addSubview의 매개변수는 "({})" 코드 블록에 배치되고, 뷰의 생성 및 속성 설정은 "({ })" , 코드 블록의 마지막 문장은 우리가 추가하려는 하위 뷰입니다.
이 작성 방법은 GNU C의 기능인 복합문을 따릅니다. 즉, "({})" 코드 블록에는 루프, 분기, 변수 선언, 함수 호출 등이 될 수 있는 여러 문을 배치할 수 있습니다. 복합문의 마지막 문장은 전체 복합문의 최종값이 되는 표현이다.
Objective-C 코드를 작성할 때 복합문을 사용하면 코드가 더욱 우아해지며, 특히 여러 개의 하위 뷰를 생성하고 추가할 때 코드가 더 깔끔해 보일 수 있습니다. 정기적으로 사용하는 것이 좋습니다.
웹페이지