【Objective-C】在|【Objective-C】在 UIButton 上添加 UIActivityIndicator 及设置大小

开发中会遇到点击一个按钮,按钮上就多一个系统的小菊花,来示操作正在进行,例如下面的加好友按钮:

【Objective-C】在|【Objective-C】在 UIButton 上添加 UIActivityIndicator 及设置大小
文章图片
直接上代码

// 初始化按钮 UIButton *addFriendButton = [UIButton emptyFrameView]; addFriendButton.layer.masksToBounds = YES; addFriendButton.layer.cornerRadius = 4.f; addFriendButton.layer.borderWidth = 0.5f; addFriendButton.layer.borderColor = [[UIColor green1Color] CGColor]; addFriendButton.titleLabel.font = [UIFont systemFontOfSize:12.1]; [addFriendButton setBackgroundColor:[UIColor white1Color]]; [addFriendButton setTitle:@"+好友" forState:UIControlStateNormal]; [addFriendButton addTarget:self action:@selector(didClickAddFriend:) forControlEvents:UIControlEventTouchUpInside];

- (IBAction)didClickAddFriend:(id)sender{ // 将文字置空 [self.addFriendButton setTitle:nil forState:UIControlStateNormal]; // 初始化系统小菊花 UIActivityIndicatorView *addFriendActivityIndicator = [[UIActivityIndicatorView alloc] initWithFrame:self.addFriendButton.bounds]; [addFriendActivityIndicator setUserInteractionEnabled:YES]; [addFriendActivityIndicator setActivityIndicatorViewStyle:UIActivityIndicatorViewStyleWhite]; // 改变小菊花颜色 [addFriendActivityIndicator setColor:[UIColor green1Color]]; // 下文去解释下面这两行行代码的作用 // CGAffineTransform transform = CGAffineTransformMakeScale(.7f, .7f); // addFriendActivityIndicator.transform = transform; [self.addFriendButton addSubview:addFriendActivityIndicator]; // 小菊花开始转圈圈 [addFriendActivityIndicator startAnimating]; // 用block实现加好友操作 if ([self addFriendHandler]) { self.addFriendHandler(); } }

【【Objective-C】在|【Objective-C】在 UIButton 上添加 UIActivityIndicator 及设置大小】UIActivityIndicatorView 不能自定义大小,创建的 UIActivityIndicatorView 有三种 style,这三种 style 有默认的大小,不能通过设置 frame 的方式来修改大小,那么上面代码中注释的那一行就起作用了。
需求:需要把显示的 UIActivityIndicatorView 显示得比预定义的小,实现的方式是通过 transform 来修改显示 UIActivityIndicatorView 的显示大小。
CGAffineTransform transform = CGAffineTransformMakeScale(.7f, .7f); addFriendActivityIndicator.transform = transform;

    推荐阅读