【深入浅出IOS开发】重写按钮控件2
2015-04-01 10:01
435 查看
对这里的内容进行第二次封装:
http://blog.csdn.net/ayaseeli/article/details/42204397
[objc] view
plaincopy
#import "MJTabBar.h"
#import "MJTabBarButton.h"
@interface MJTabBar()
/**
* 记录当前选中的按钮
*/
@property (nonatomic, weak) MJTabBarButton *selectedButton;
@end
@implementation MJTabBar
- (void)addTabButtonWithName:(NSString *)name selName:(NSString *)selName
{
// 创建按钮
MJTabBarButton *button = [MJTabBarButton buttonWithType:UIButtonTypeCustom];
// 设置图片
[button setBackgroundImage:[UIImage imageNamed:name] forState:UIControlStateNormal];
[button setBackgroundImage:[UIImage imageNamed:selName] forState:UIControlStateSelected];
// 添加
[self addSubview:button];
#warning UIControlEventTouchDown : 手指一按下去就会触发这个事件
// 监听
[button addTarget:self action:@selector(buttonClick:) forControlEvents:UIControlEventTouchDown];
// 默认选中第0个按钮
if (self.subviews.count == 1) {
[self buttonClick:button];
}
}
- (void)layoutSubviews
{
[super layoutSubviews];
int count = self.subviews.count;
for (int i = 0; i<count; i++) {
MJTabBarButton *button = self.subviews[i];
button.tag = i;
// 设置frame
CGFloat buttonY = 0;
CGFloat buttonW = self.frame.size.width / count;
CGFloat buttonH = self.frame.size.height;
CGFloat buttonX = i * buttonW;
button.frame = CGRectMake(buttonX, buttonY, buttonW, buttonH);
}
}
/**
* 监听按钮点击
*/
- (void)buttonClick:(MJTabBarButton *)button
{
// 0.通知代理
if ([self.delegate respondsToSelector:@selector(tabBar:didSelectButtonFrom:to:)]) {
[self.delegate tabBar:self didSelectButtonFrom:self.selectedButton.tag to:button.tag];
}
// 1.让当前选中的按钮取消选中
self.selectedButton.selected = NO;
// 2.让新点击的按钮选中
button.selected = YES;
// 3.新点击的按钮就成为了"当前选中的按钮"
self.selectedButton = button;
}
@end
http://blog.csdn.net/ayaseeli/article/details/42204397
[objc] view
plaincopy
#import "MJTabBar.h"
#import "MJTabBarButton.h"
@interface MJTabBar()
/**
* 记录当前选中的按钮
*/
@property (nonatomic, weak) MJTabBarButton *selectedButton;
@end
@implementation MJTabBar
- (void)addTabButtonWithName:(NSString *)name selName:(NSString *)selName
{
// 创建按钮
MJTabBarButton *button = [MJTabBarButton buttonWithType:UIButtonTypeCustom];
// 设置图片
[button setBackgroundImage:[UIImage imageNamed:name] forState:UIControlStateNormal];
[button setBackgroundImage:[UIImage imageNamed:selName] forState:UIControlStateSelected];
// 添加
[self addSubview:button];
#warning UIControlEventTouchDown : 手指一按下去就会触发这个事件
// 监听
[button addTarget:self action:@selector(buttonClick:) forControlEvents:UIControlEventTouchDown];
// 默认选中第0个按钮
if (self.subviews.count == 1) {
[self buttonClick:button];
}
}
- (void)layoutSubviews
{
[super layoutSubviews];
int count = self.subviews.count;
for (int i = 0; i<count; i++) {
MJTabBarButton *button = self.subviews[i];
button.tag = i;
// 设置frame
CGFloat buttonY = 0;
CGFloat buttonW = self.frame.size.width / count;
CGFloat buttonH = self.frame.size.height;
CGFloat buttonX = i * buttonW;
button.frame = CGRectMake(buttonX, buttonY, buttonW, buttonH);
}
}
/**
* 监听按钮点击
*/
- (void)buttonClick:(MJTabBarButton *)button
{
// 0.通知代理
if ([self.delegate respondsToSelector:@selector(tabBar:didSelectButtonFrom:to:)]) {
[self.delegate tabBar:self didSelectButtonFrom:self.selectedButton.tag to:button.tag];
}
// 1.让当前选中的按钮取消选中
self.selectedButton.selected = NO;
// 2.让新点击的按钮选中
button.selected = YES;
// 3.新点击的按钮就成为了"当前选中的按钮"
self.selectedButton = button;
}
@end
相关文章推荐
- 【深入浅出IOS开发】重写按钮控件2
- 【深入浅出IOS开发】彩票-重写按钮控件
- 【深入浅出IOS开发】彩票-重写按钮控件
- iOS开发系列之常用自定义控件开发集—自定义组按钮控件开发
- UIButton 按钮控件-IOS开发
- IOS开发笔记-01按钮操作-11.UI控件概述
- 【iOS开发-56】案例BUG:按钮的enabled、控件的userInteractionEnabled以及两种提示框UIAlert和UIActionSheet
- UIButton 按钮控件-IOS开发
- iOS开发小技巧--设置cell左右有空隙,设置分割线的新思路,重写setFrame:让别人在外界无法修改控件的大小
- UIButton按钮控件-iOS开发
- [iOS开发项目-3] 按钮控件的移动,放大缩小,左右旋转操作
- ios基础控件之开关按钮(UISwitch) 分类: ios开发 2015-04-08 21:24 188人阅读 评论(0) 收藏
- UIButton 按钮控件-IOS开发
- iOS应用UI开发中的字体和按钮控件使用指南
- IOS开发:按钮控件
- UIButton 按钮控件-IOS开发
- UIButton 按钮控件-IOS开发 (实例)
- UIButton 按钮控件-IOS开发
- 【深入浅出IOS开发】彩票-按钮中图片的拉伸
- iOS开发-UI控件:自定义UITableViewCell 上的多个按钮点击事件处理