iosはどのように迅速にコントロールの属性を設定して、“set”“=”に別れを告げます
2465 ワード
実際の開発では、純粋なコードで開発する場合、インタフェースUIを書くことが最も頭を悩ませ、label、buttonごとに属性設定を行い、このようなコントロールをたくさん考えてみると、「set」=「それはどんなに面倒なことか.だから、自分を“怠け者”にするためにそんなに“set=”を書かなければならなくて、私はここで自分でチェーン式の設置ツールを書いて、しかも原生の方法に影響しません.書く前に、labelとbutton:labelを定義する方法を見てみましょう.
button:
プロジェクトにUIのコードがこんなにたくさん書かれているのを見て、頭が痛いことがあります.label(button)ではありませんか.どうしてこんなにたくさんの行が必要ですか.それで、私の書き方はこうです.label:
button:
チェーンで書くこともできますし、順序の制限はありません.はい、これが私のプロジェクトで使用したプロパティの設定方法です.原理については、実は簡単です.ゆっくり話してください.
原理:ここでは明らかにチェーンプログラミングを使用しているが、ocではチェーンプログラミングを実現するためにblock(ここではlabelを例に挙げる):PS:私はUILabelの分類で実現した. block を定義するはlabel文字を取得するgetterメソッドを宣言し、 を実現する.
このように、1つの属性の設定を完了するのは、比較的簡単であり、他の属性の設定を見る必要がある場合はdemoが詳細に表示される.
また、私はこのdemoに面白い機能を追加しました:button初期化はクリックを実現することができます:
次のように、コントロールをすばやく初期化する方法が追加されました.
原理もチェーンプログラミングの思想を通じて、NSObjectのために1つの分類をプラスして、demoを見てください.
以上、私たちが開発をより効率的にするために、これらの小さなものはやはり価値があります.ありがとうございます.
label.text = labelText;
label.font = [UIFont systemFontOfSize:12];
label.font = [UIFont fontWithName:@"Arial" size:30];
label.textColor = [UIColor lightGrayColor];
label.textAlignment = NSTextAlignmentLeft;
...
button:
[button setTitle:@"On" forState:UIControlStateNormal];
[button setTitle:@"On" forState:UIControlStateHighlighted];
[button setBackgroundImage:baseGreen forState:UIControlStateNormal];
[button setBackgroundImage:altGreen forState:UIControlStateHighlighted];
...
プロジェクトにUIのコードがこんなにたくさん書かれているのを見て、頭が痛いことがあります.label(button)ではありませんか.どうしてこんなにたくさんの行が必要ですか.それで、私の書き方はこうです.label:
// ,
label.en_alignment(NSTextAlignmentCenter).en_color([UIColor redColor]);
//
label.en_text(@"1233123").en_font([UIFont systemFontOfSize:11]);
button:
// ,
button.en_bgColor([UIColor redColor]).en_normalTitleColor([UIColor blackColor]);
// , ,
button.en_font(@11).en_highLightTitle(@" ").en_normalTitle(@" ");
チェーンで書くこともできますし、順序の制限はありません.はい、これが私のプロジェクトで使用したプロパティの設定方法です.原理については、実は簡単です.ゆっくり話してください.
原理:ここでは明らかにチェーンプログラミングを使用しているが、ocではチェーンプログラミングを実現するためにblock(ここではlabelを例に挙げる):PS:私はUILabelの分類で実現した.
func: label
parameter: string
return: label
typedef UILabel *(^blockText)(NSString *string);
//
- (blockText)en_text;// block
//
- (blockText)en_text{
return ^UILabel *(NSString *text){
weakSelf.text = text;
return self;
};
}
このように、1つの属性の設定を完了するのは、比較的簡単であり、他の属性の設定を見る必要がある場合はdemoが詳細に表示される.
また、私はこのdemoに面白い機能を追加しました:button初期化はクリックを実現することができます:
//
UIButton *button = [[UIButton alloc] initWithCallBackButtonClickBlock:^(UIButton *button) {
NSLog(@" ");
}];
次のように、コントロールをすばやく初期化する方法が追加されました.
// self
UIView *view = self.instanceInit(TypeView);
//UIView
UIView *view = UIView.classInit(TypeView);
原理もチェーンプログラミングの思想を通じて、NSObjectのために1つの分類をプラスして、demoを見てください.
以上、私たちが開発をより効率的にするために、これらの小さなものはやはり価値があります.ありがとうございます.