- 1、消除UIButton的高亮状态:
- 1)自定义button
- 2)重写Highlighted的set方法
- (void)setHighlighted:(BOOL)highlighted{};
2、修改button内部控件:UIImageView和UILabel的位置
-
1)方法一:
- 1】自定义button;
- 2】重写以下方法:
// 重新设置ImageView的frame - (CGRect)imageRectForContentRect:(CGRect)contentRect { return imageRect; } // 重新设置Label的frame - (CGRect)titleRectForContentRect:(CGRect)contentRect { }
2)方法二:
1】自定义button;
2】重写LayoutSubviews方法:
// 此举例实现的功能是让button内部的imageView和label上下排布
- (void)layoutSubviews
{
[super layoutSubviews];
CGFloat titleH =21; CGFloat imageX =0;
CGFloat imageY =0;
CGFloatimageW = self.bounds.size.width;
CGFloat imageH =self.bounds.size.height-titleH;
self.imageView.frame = CGRectMake(imageX,imageY, imageW, imageH);
self.titleLabel.frame = CGRectMake(imageX,imageH, imageW, titleH);
}
- 3、设置文字图片居中
self.titleLabel.textAlignment = NSTextAlignmentCenter;
self.imageView.contentMode= UIViewContentModeCenter;
- 4、设置label换行显示
button.titleLabel.numberOfLines = 0;
- 5、设置尺寸随内容尺寸而定:
[btn sizeToFit];
- 6、让navigationbar的leftItem或rightItem尽量靠近屏幕边缘:
// 自定义button---MainTagSubIcon(测试图片名称)
UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom];
[button setImage:[UIImage imageNamed:@"MainTagSubIcon"] forState:UIControlStateNormal];
// 设置button的尺寸
[button sizeToFit];
// 设置内边距对应的位置为负数
button.contentEdgeInsets = UIEdgeInsetsMake(0, -10, 0, 0);
self.navigationItem.leftBarButtonItem = [[UIBarButtonItem alloc] initWithCustomView:button];