1添加一个可自由滑动的按钮-----需要到入第三方
(需要导入两个文件#import "UIButton+NMCategory.h”以及 .m)
UIButton *XZSBtn = [UIButton buttonWithType:UIButtonTypeCustom];
XZSBtn.backgroundColor = [UIColor navbarColor];
[XZSBtn setImage:[UIImage imageNamed:@"helpXZS"] forState:UIControlStateNormal];
XZSBtn.frame = CGRectMake(SCREEN_WIDTH-64, SCREEN_HEIGHT-200, 64, 64);
XZSBtn.layer.masksToBounds=YES;
XZSBtn.layer.cornerRadius = 32;
[XZSBtn addTarget:self action:@selector(XZSClick:) forControlEvents:UIControlEventTouchUpInside];
[XZSBtn setDragEnable:YES];//这两句起作用的
[XZSBtn setAdsorbEnable:YES];
[self.view addSubview:XZSBtn];
-(void)XZSClick:(id)send
{
ChatViewController *chat=[[ChatViewController alloc]init];
[self.navigationController pushViewController:chat animated:YES];
}
2.可以自由拖拽 且判断是否拖拽 或者点击---不需要导入第三方
// 可滑动的小助手
UIButton *XZSBtn = [UIButton buttonWithType:UIButtonTypeCustom];
XZSBtn.backgroundColor = [UIColor navbarColor];
[XZSBtn setImage:[UIImage imageNamed:@"helpXZS"] forState:UIControlStateNormal];
XZSBtn.frame = CGRectMake(SCREEN_WIDTH-64, SCREEN_HEIGHT-200, 64, 64);
XZSBtn.layer.masksToBounds=YES;
XZSBtn.layer.cornerRadius = 32;
[XZSBtn addTarget:self action:@selector(XZSClick:) forControlEvents:UIControlEventTouchUpInside];
[XZSBtn addTarget:self action:@selector(dragMoving:withEvent: )forControlEvents: UIControlEventTouchDragInside];
a=0;
[self.view addSubview:XZSBtn];
//点击事件
-(void)XZSClick:(id)send
{
if (a==0)
{
ChatViewController *chat=[[ChatViewController alloc]init];
NSLog(@"跳到小助手页面");
[self.navigationController pushViewController:chat animated:YES];
}
a=0;
}
//拖拽状态下的方法
- (void) dragMoving: (UIButton *)btn withEvent:(UIEvent *)event
{
a=1;
CGPoint point = [[[event allTouches] anyObject] locationInView:self.view];
CGFloat x = point.x;
// CGFloat y = point.y;
CGFloat btnx = btn.frame.size.width/2;
// CGFloat btny = btn.frame.size.height/2;
if(x<=btnx)
{
point.x = btnx;
}
if(x >= self.view.bounds.size.width - btnx)
{
point.x = self.view.bounds.size.width - btnx;
}
btn.center = point;
}
3.自定义的按钮 有图片+label
#import <UIKit/UIKit.h>
@interface regbutton : UIButton
-(void)setBtnImageName:(NSString*)imgName WithbtnTit:(NSString*)title;
-(void)setBtnImageName:(NSString*)imgName WithbtnTit:(NSString*)title
{
UIImage *imag=[UIImage imageNamed:imgName];//如何获取图片本身大小
UIImageView *img = [[UIImageView alloc]initWithFrame:CGRectMake(20, 20, imag.size.width, imag.size.height)];
img.image=[UIImage imageNamed:imgName];//这个必须有
[self addSubview:img];
UILabel *label = [[UILabel alloc]initWithFrame:CGRectMake(60, 20, 100, 20)];
label.textColor = [UIColor colorWithHex:0x333333];
label.text=title;//这个必须有
label.font = [UIFont systemFontOfSize:19];
[self addSubview:label];
}
4.循环创建按钮进行点击切换颜色问题
-(void)btn:(UIButton*)sender{
for (UIButton *btn in _btnArray){
if (btn.tag ==sender.tag) {
[sender setTitleColor:MainRGB forState:UIControlStateNormal];
} else {
[sender setTitleColor:MainRGB forState:UIControlStateNormal];
}
}
}
5.按钮上字体位置
btn.contentHorizontalAlignment = UIControlContentHorizontalAlignmentLeft