自定义导航栏的返回按钮,扩大点击区域,不改变图片的尺寸比例,同时可设置title和image的位置关系
2015-03-13 10:00
1351 查看
转载于这里
自定义导航栏的左侧按钮,同时可扩大button的点击区域,不改变图片的尺寸比例,设置title和image的位置关系。默认是居中。
UIButton * btn = [UIButton buttonWithType:UIButtonTypeCustom];
btn.frame = CGRectMake(0, 0, 100, 44);
[btn setImage:[UIImage imageNamed:@"返回icon1.png"] forState:UIControlStateNormal];//40*32图片尺寸大小
btn.imageEdgeInsets = UIEdgeInsetsMake(0,
-50, 0, 0);//设置偏移量
[btn addTarget:self action:@selector(goBackPage:) forControlEvents:UIControlEventTouchUpInside];
UIBarButtonItem * leftItem = [[UIBarButtonItem alloc]initWithCustomView:btn];
self.navigationItem.leftBarButtonItem =
leftItem;
UIEdgeInsetsMake
里面的四个参数表示距离上边界、左边界、下边界、右边界的距离,默认都为零,title/image在button的正中央
[objc]
UIKIT_STATIC_INLINE UIEdgeInsets UIEdgeInsetsMake(CGFloat top, CGFloat left, CGFloat bottom, CGFloat right) {
UIEdgeInsets insets = {top, left, bottom, right};
return insets;
}
[objc]
self.view.backgroundColor = [UIColor blackColor];
UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom];//button的类型
button.frame = CGRectMake(100, 100,90, 90);//button的frame
button.backgroundColor = [UIColor cyanColor];//button的背景颜色
// [button setBackgroundImage:[UIImage imageNamed:@"man_64.png"] forState:UIControlStateNormal];
// 在UIButton中有三个对EdgeInsets的设置:ContentEdgeInsets、titleEdgeInsets、imageEdgeInsets
[button setImage:[UIImage imageNamed:@"IconHome@2x.png"] forState:UIControlStateNormal];//给button添加image
button.imageEdgeInsets = UIEdgeInsetsMake(5,13,21,button.titleLabel.bounds.size.width);//设置image在button上的位置(上top,左left,下bottom,右right)这里可以写负值,对上写-5,那么image就象上移动5个像素
[button setTitle:@"首页" forState:UIControlStateNormal];//设置button的title
button.titleLabel.font = [UIFont systemFontOfSize:16];//title字体大小
button.titleLabel.textAlignment = NSTextAlignmentCenter;//设置title的字体居中
[button setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal];//设置title在一般情况下为白色字体
[button setTitleColor:[UIColor grayColor] forState:UIControlStateHighlighted];//设置title在button被选中情况下为灰色字体
button.titleEdgeInsets = UIEdgeInsetsMake(71, -button.titleLabel.bounds.size.width-50, 0, 0);//设置title在button上的位置(上top,左left,下bottom,右right)
// [button setContentEdgeInsets:UIEdgeInsetsMake(70, 0, 0, 0)];//
// button.contentHorizontalAlignment = UIControlContentHorizontalAlignmentCenter;//设置button的内容横向居中。。设置content是title和image一起变化
[button addTarget:self action:@selector(tap) forControlEvents:UIControlEventTouchUpInside];
[self.view addSubview:button];
[objc]
//button相应的事件
-(void)tap {
NSLog(@"tap a button");
UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:@"hello" message:@"willingseal" delegate:self cancelButtonTitle:@"ok" otherButtonTitles: nil nil];
[alertView show];
}
自定义导航栏的左侧按钮,同时可扩大button的点击区域,不改变图片的尺寸比例,设置title和image的位置关系。默认是居中。
UIButton * btn = [UIButton buttonWithType:UIButtonTypeCustom];
btn.frame = CGRectMake(0, 0, 100, 44);
[btn setImage:[UIImage imageNamed:@"返回icon1.png"] forState:UIControlStateNormal];//40*32图片尺寸大小
btn.imageEdgeInsets = UIEdgeInsetsMake(0,
-50, 0, 0);//设置偏移量
[btn addTarget:self action:@selector(goBackPage:) forControlEvents:UIControlEventTouchUpInside];
UIBarButtonItem * leftItem = [[UIBarButtonItem alloc]initWithCustomView:btn];
self.navigationItem.leftBarButtonItem =
leftItem;
UIEdgeInsetsMake
里面的四个参数表示距离上边界、左边界、下边界、右边界的距离,默认都为零,title/image在button的正中央
[objc]
UIKIT_STATIC_INLINE UIEdgeInsets UIEdgeInsetsMake(CGFloat top, CGFloat left, CGFloat bottom, CGFloat right) {
UIEdgeInsets insets = {top, left, bottom, right};
return insets;
}
[objc]
self.view.backgroundColor = [UIColor blackColor];
UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom];//button的类型
button.frame = CGRectMake(100, 100,90, 90);//button的frame
button.backgroundColor = [UIColor cyanColor];//button的背景颜色
// [button setBackgroundImage:[UIImage imageNamed:@"man_64.png"] forState:UIControlStateNormal];
// 在UIButton中有三个对EdgeInsets的设置:ContentEdgeInsets、titleEdgeInsets、imageEdgeInsets
[button setImage:[UIImage imageNamed:@"IconHome@2x.png"] forState:UIControlStateNormal];//给button添加image
button.imageEdgeInsets = UIEdgeInsetsMake(5,13,21,button.titleLabel.bounds.size.width);//设置image在button上的位置(上top,左left,下bottom,右right)这里可以写负值,对上写-5,那么image就象上移动5个像素
[button setTitle:@"首页" forState:UIControlStateNormal];//设置button的title
button.titleLabel.font = [UIFont systemFontOfSize:16];//title字体大小
button.titleLabel.textAlignment = NSTextAlignmentCenter;//设置title的字体居中
[button setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal];//设置title在一般情况下为白色字体
[button setTitleColor:[UIColor grayColor] forState:UIControlStateHighlighted];//设置title在button被选中情况下为灰色字体
button.titleEdgeInsets = UIEdgeInsetsMake(71, -button.titleLabel.bounds.size.width-50, 0, 0);//设置title在button上的位置(上top,左left,下bottom,右right)
// [button setContentEdgeInsets:UIEdgeInsetsMake(70, 0, 0, 0)];//
// button.contentHorizontalAlignment = UIControlContentHorizontalAlignmentCenter;//设置button的内容横向居中。。设置content是title和image一起变化
[button addTarget:self action:@selector(tap) forControlEvents:UIControlEventTouchUpInside];
[self.view addSubview:button];
[objc]
//button相应的事件
-(void)tap {
NSLog(@"tap a button");
UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:@"hello" message:@"willingseal" delegate:self cancelButtonTitle:@"ok" otherButtonTitles: nil nil];
[alertView show];
}
相关文章推荐
- 1014-32-首页13-cell的结构分析---导航栏中间title位置的按钮的尺寸设置---setFrame----
- IOS navigationItem 设置返回按钮,title图片和rightBarButtonItem
- andoid点击按钮(ImageButton)时改变按钮的背景图片 SelectorDemo
- ImageButton点击按钮改变图片
- UIButton 设置图片文字位置 -- imageEdgeInsets && titleEdgeInsets
- dialog点击对话框之外的区域禁止取消,点击返回按钮取消对话框的同时关闭当前activity
- 通过setTitleEdgeInsets和setImageEdgeInsets改变UIBtton文本图片位置
- 如何通过 bin setTitleEdgeInsets setImageEdgeInsets改变图片和文字的位置
- 按钮内部文字(titleLabel)和图片(imageView)的位置排布方式
- IOS返回按钮点击区域扩大的问题
- 快速设置UINavbar的属性包括背景 title的颜色字体以及改变返回键的图片
- ImageView设置图片按比例自适应缩放,9.png根据屏幕分辨率放到不同的drawable文件夹中
- ios设置导航栏背景图片、返回按钮背景、标题颜色等等
- Android中不规则图片按钮透明区域的点击效果
- ios设置导航栏背景图片、返回按钮背景、标题颜色等等
- iOS 之点击按钮改变状态的图片
- Android笔记- 使用XML selector 设置按钮点击效果图片
- (转)android中ListView点击和里边按钮或ImageView点击不能同时生效问题解决
- javascript: 改变和控制显示的图片大小(保持比例,同时可限制高宽)
- android 使用xml selector设置按钮点击效果图片