十三.按钮:自由移动,图+label,选中状态颜色,字体位置

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 

@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

你可能感兴趣的:(十三.按钮:自由移动,图+label,选中状态颜色,字体位置)