AJ学IOS 之微博项目实战(12)发送微博自定义工具条代理实现点击事件
来源:互联网 发布:fgo下载完整数据卡住 编辑:程序博客网 时间:2024/05/16 20:31
AJ分享,必须精品
一:效果
二:封装好的工具条
NYComposeToolbar.h
带代理方法
#import <UIKit/UIKit.h>typedef enum { NYComposeToolbarButtonTypeCamera, // 拍照 NYComposeToolbarButtonTypePicture, // 相册 NYComposeToolbarButtonTypeMention, // @ NYComposeToolbarButtonTypeTrend, // # NYComposeToolbarButtonTypeEmotion // 表情} NYComposeToolbarButtonType;@class NYComposeToolbar;@protocol NYComposeToolbarDelegate <NSObject>@optional- (void)composeToolbar:(NYComposeToolbar *)toolbar didClickButton:(NYComposeToolbarButtonType)buttonType;@end@interface NYComposeToolbar : UIView@property (nonatomic, weak) id<NYComposeToolbarDelegate> delegate;@end
NYComposeToolbar.m
//// NYComposeToolbar.m// Created by apple on 14-10-20.// Copyright (c) 2014年 heima. All rights reserved.//#import "NYComposeToolbar.h"@implementation NYComposeToolbar- (id)initWithFrame:(CGRect)frame{ self = [super initWithFrame:frame]; if (self) { self.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"compose_toolbar_background"]]; // 初始化按钮 [self setupBtn:@"compose_camerabutton_background" highImage:@"compose_camerabutton_background_highlighted" type:NYComposeToolbarButtonTypeCamera]; [self setupBtn:@"compose_toolbar_picture" highImage:@"compose_toolbar_picture_highlighted" type:NYComposeToolbarButtonTypePicture]; [self setupBtn:@"compose_mentionbutton_background" highImage:@"compose_mentionbutton_background_highlighted" type:NYComposeToolbarButtonTypeMention]; [self setupBtn:@"compose_trendbutton_background" highImage:@"compose_trendbutton_background_highlighted" type:NYComposeToolbarButtonTypeTrend]; [self setupBtn:@"compose_emoticonbutton_background" highImage:@"compose_emoticonbutton_background_highlighted" type:NYComposeToolbarButtonTypeEmotion]; } return self;}/** * 创建一个按钮 */- (void)setupBtn:(NSString *)image highImage:(NSString *)highImage type:(NYComposeToolbarButtonType)type{ UIButton *btn = [[UIButton alloc] init]; [btn setImage:[UIImage imageNamed:image] forState:UIControlStateNormal]; [btn setImage:[UIImage imageNamed:highImage] forState:UIControlStateHighlighted]; [btn addTarget:self action:@selector(btnClick:) forControlEvents:UIControlEventTouchUpInside]; btn.tag = type; [self addSubview:btn];}- (void)layoutSubviews{ [super layoutSubviews]; // 设置所有按钮的frame NSUInteger count = self.subviews.count; CGFloat btnW = self.width / count; CGFloat btnH = self.height; for (NSUInteger i = 0; i<count; i++) { UIButton *btn = self.subviews[i]; btn.y = 0; btn.width = btnW; btn.x = i * btnW; btn.height = btnH; }}- (void)btnClick:(UIButton *)btn{ if ([self.delegate respondsToSelector:@selector(composeToolbar:didClickButton:)]) {// NSUInteger index = (NSUInteger)(btn.x / btn.width); [self.delegate composeToolbar:self didClickButton:btn.tag]; }}@end
三:调用
设置代理并且实现代理方法
/** * 添加工具条 */- (void)setupToolbar{ NYComposeToolbar *toolbar = [[NYComposeToolbar alloc] init]; toolbar.width = self.view.width; toolbar.height = 44; toolbar.y = self.view.height - toolbar.height; toolbar.delegate = self; [self.view addSubview:toolbar]; self.toolbar = toolbar;}
代理方法
#pragma mark - NYComposeToolbarDelegate- (void)composeToolbar:(NYComposeToolbar *)toolbar didClickButton:(NYComposeToolbarButtonType)buttonType{ switch (buttonType) { case NYComposeToolbarButtonTypeCamera: // 拍照// [self openCamera]; NYLog(@"--- 拍照"); break; case NYComposeToolbarButtonTypePicture: // 相册 NYLog(@"--- 相册");// [self openAlbum]; break; case NYComposeToolbarButtonTypeMention: // @ NYLog(@"--- @"); break; case NYComposeToolbarButtonTypeTrend: // # NYLog(@"--- #"); break; case NYComposeToolbarButtonTypeEmotion: // 表情\键盘 NYLog(@"--- 表情"); break; }}
0 0
- AJ学IOS 之微博项目实战(12)发送微博自定义工具条代理实现点击事件
- 猫猫学iOS 之微博项目实战(12)发送微博自定义工具条代理实现点击事件
- AJ学IOS 之微博项目实战(11)发送微博自定义TextView实现带占位文字
- AJ学IOS 之微博项目实战(5)微博自定义搜索框searchBar
- AJ学IOS 之微博项目实战(2)微博主框架-自定义导航控制器NavigationController
- AJ学IOS 之微博项目实战(7)程序启动新特性用UICollectionViewController实现
- AJ学IOS 之微博项目实战(13)发送微博调用相机里面的图片以及调用相机
- AJ学IOS 之微博项目实战(4)微博自定义tabBar中间的添加按钮
- AJ学IOS 之微博项目实战(6)导航控制器NavigationController 的滑动回退功能实现
- AJ学IOS 之微博项目实战(1)微博主框架-子控制器的添加
- AJ学IOS(17)UI之纯代码自定义Cell实现新浪微博UI
- AJ学IOS 之微博项目实战(8)用AFNetworking和SDWebImage简单加载微博数据
- AJ学IOS 之微博项目实战(3)微博主框架-UIImage防止iOS7之后自动渲染_定义分类
- AJ学IOS 之微博项目实战(10)微博cell中图片的显示以及各种填充模式简介
- AJ学IOS 之微博项目实战(9)微博模型之时间相关重要操作,判断刚刚,昨天,今年等等
- 猫猫学iOS 之微博项目实战(11)发送微博自定义TextView实现带占位文字
- AJ学IOS(07)UI之UITextField代理事件_类似QQ登陆窗口的简单实现
- AJ学IOS(09)UI之UIScrollView代理触摸实现_图片缩放
- AJ学IOS 之控制器view显示中view的父子关系及controller的父子关系_解决屏幕旋转不能传递事件问题
- AJ学IOS 之微博项目实战(9)微博模型之时间相关重要操作,判断刚刚,昨天,今年等等
- linux shell中的变量PS1------定制linux shell提示符
- AJ学IOS 之微博项目实战(10)微博cell中图片的显示以及各种填充模式简介
- AJ学IOS 之微博项目实战(11)发送微博自定义TextView实现带占位文字
- AJ学IOS 之微博项目实战(12)发送微博自定义工具条代理实现点击事件
- AJ学IOS 之微博项目实战(13)发送微博调用相机里面的图片以及调用相机
- AJ学IOS 之BLOCK的妙用_利用block实现链式编程
- AJ学IOS 之tableView的下拉放大图片的方法
- AJ学IOS 之二维码学习,快速生成二维码
- AJ学IOS 之二维码学习,快速打开相机读取二维码
- nexus启动无法访问 添加RUN_AS_USER=root也不行
- AJ学IOS 之ipad开发qq空间项目横竖屏幕适配
- AJ学IOS 之ipad开发Popover的基本使用