block簡(jiǎn)單使用

一個(gè)vc需要加一個(gè)view,一個(gè)view上面有imageView,label,button等。我們把這個(gè)view獨(dú)立一個(gè)類出來,button加點(diǎn)擊事件。定義一個(gè)簡(jiǎn)單的block,作為點(diǎn)擊事件的一個(gè)參數(shù),在vc中重新穿件這個(gè)view的實(shí)例,add進(jìn)去,然后setblock,就可以直接回調(diào),響應(yīng)定義好的點(diǎn)擊事件。

類TYDDownLoadTianyaQIngView

.h文件

#import?

@interface?TYDDownLoadTianyaQingView :?UIView

// 定義一個(gè)block,返回值void,名字為clickBlock

@property?(nonatomic,?copy)void(^clickBlock)();

- (id)initBasicViewWithFrame:(CGRect)frame;

- (void)downLoadButtonClick:(void(^)())clickBlock;

@end

.m文件

#import?"TYDDownLoadTianyaQingView.h"

@interface?TYDDownLoadTianyaQingView?()

@property?(nonatomic,?strong)?UIImageView?*iconImageView;

@property?(nonatomic,?strong)?UILabel??*describeLabel;

@property?(nonatomic,?strong)?UIButton?*downLoadButton;

@end

@implementation?TYDDownLoadTianyaQingView

- (id)initBasicViewWithFrame:(CGRect)frame

{

self?= [super?initWithFrame:frame];

if?(self)

{

self.backgroundColor?= [UIColor?colorInSkinWithKey:@"useColor2"];

[self?initBasicView];

}

return?self;

}

- (void)initBasicView

{

_iconImageView??= [[UIImageView?alloc]initWithImage:[UIImage?imageNamed:@"more_gowelun"]];

[self?addSubview:_iconImageView];

_describeLabel?= [[UILabel?alloc]?init];

_describeLabel.text?=?@"熱門版塊、精彩互動(dòng)\n盡在天涯社區(qū)官方APP";

_describeLabel.font?=?kUseFont5;

_describeLabel.textColor?= [UIColor?colorInSkinWithKey:@"useColor5"];

_describeLabel.textAlignment?=?NSTextAlignmentLeft;

_describeLabel.numberOfLines?= 2;

[self?addSubview:_describeLabel];

_downLoadButton?= [UIButton?buttonWithType:UIButtonTypeCustom];

[_downLoadButton?setTitle:@"下載"?forState:UIControlStateNormal];

[_downLoadButton?setTitleColor:[UIColor?colorInSkinWithKey:@"subTextColor"]?forState:UIControlStateNormal];

_downLoadButton.titleLabel.font?=?kUseFont5;

[_downLoadButton?setBackgroundColor:[UIColor?colorInSkinWithKey:@"navTitleTextColor"]];

// 加點(diǎn)擊事件

[_downLoadButton?addTarget:self?action:@selector(downLoadButtonClick:)?forControlEvents:UIControlEventTouchUpInside];

[self?addSubview:_downLoadButton];

[_iconImageView?mas_makeConstraints:^(MASConstraintMaker?*make) {

make.left.equalTo(self.mas_left).offset(10);

make.size.mas_equalTo(CGSizeMake(29, 29));

make.centerY.equalTo(self.mas_centerY);

}];

[_describeLabel?mas_makeConstraints:^(MASConstraintMaker?*make) {

make.left.equalTo(_iconImageView.mas_right).offset(10);

make.top.equalTo(_iconImageView.mas_top).offset(-2);

make.right.equalTo(_downLoadButton.mas_left).offset(-10);

}];

[_downLoadButton?mas_makeConstraints:^(MASConstraintMaker?*make) {

make.size.mas_equalTo(CGSizeMake(60, 20));

make.centerY.equalTo(self.mas_centerY);

make.right.equalTo(self.mas_right).offset(-10);

}];

}

- (void)downLoadButtonClick:(void(^)())clickBlock

{

// 使定義的block等于傳入的block,就可以在其他頁面?zhèn)魅隷block的值,實(shí)現(xiàn)點(diǎn)擊事件回調(diào)

_clickBlock?= clickBlock;

NSURL?* url = [NSURL?URLWithString:@"tianyaQing://tianya"];

BOOL?installed = [[UIApplication?sharedApplication]?canOpenURL:url];

if?(installed) {

[[UIApplication?sharedApplication]?openURL:url];

}

else

{

NSString*str = [NSString?stringWithFormat:@"http://itunes.apple.com/us/app/id%d",529696004];

[[UIApplication?sharedApplication]?openURL:[NSURL?URLWithString:str]];

}

}

@end

VC中實(shí)例化TYDDownLoadTianyaQingView

_downLoadView?= [[TYDDownLoadTianyaQingView?alloc]?initBasicViewWithFrame:CGRectMake(10,?self.view.frame.size.height-140,?self.view.frame.size.width-20, 60)];

調(diào)用block的set方法實(shí)現(xiàn)回調(diào)

[_downLoadView?setClickBlock:^{

}];

最后編輯于
?著作權(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),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

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

  • (一)Masonry介紹 Masonry是一個(gè)輕量級(jí)的布局框架 擁有自己的描述語法 采用更優(yōu)雅的鏈?zhǔn)秸Z法封裝自動(dòng)布...
    木易林1閱讀 2,576評(píng)論 0 3
  • Masonry是一個(gè)輕量級(jí)的布局框架,擁有自己的描述語法,采用更優(yōu)雅的鏈?zhǔn)秸Z法封裝自動(dòng)布局,簡(jiǎn)潔明了并具有高可讀性...
    3dcc6cf93bb5閱讀 1,933評(píng)論 0 1
  • 前言 1 MagicNumber->autoresizingMask->autolayout 以上是純手寫代碼所經(jīng)...
    Daimer閱讀 532評(píng)論 0 2
  • iOS_autoLayout_Masonry 概述 Masonry是一個(gè)輕量級(jí)的布局框架與更好的包裝AutoLay...
    指尖的跳動(dòng)閱讀 1,319評(píng)論 1 4
  • 我曾經(jīng)玩笑 小鹿亂撞 大概不適合我 但后來 你躍動(dòng)在我周身的空氣里 我的心是歡喜的 那只小鹿 也在跟隨你躍動(dòng) 再后...
    Kariii閱讀 162評(píng)論 1 1

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