一飘言、 方式一:
1.拿到一個格子視圖
AppView *appOldView = [AppView loadNib];
// 賦值
AppViewModel *appViewModel = self.apps[i];
appOldView.appViewModel = appViewModel;
2. appView.h
#import <UIKit/UIKit.h>
@class AppViewModel;
@interface appView : UIView
@property(nonatomic,strong)AppViewModel *appViewModel;
+ (id)loadNib;
@end
3. appView.m
#import "appView.h"
#import "AppViewModel.h"
@interface appView()
@property (weak, nonatomic) IBOutlet UIImageView *head;
@property (weak, nonatomic) IBOutlet UILabel *nameLabel;
@end
@implementation appView
//重寫模型的set方法
- (void)setAppViewModel:(AppViewModel *)appViewModel{
_appViewModel = appViewModel;
self.head.image = [UIImage imageNamed:appViewModel.icon];
self.nameLabel.text = appViewModel.name;
}
+ (id )loadNib{
return [[NSBundle mainBundle]loadNibNamed:@"appView" owner:nil options:nil][0];
}
@end
二鳞仙、自定義UIView(xib方式)
eg.
CZWheelView.h
#import <UIKit/UIKit.h>
@interface CZWheelView : UIView
+ (instancetype)wheelView;
@end
CZWheelView.m
#import "CZWheelView.h"
#import "UIView+Ex.h"
@interface CZWheelView ()
//背景圖片
@property (weak, nonatomic) IBOutlet UIImageView *wheelView;
@property (nonatomic, weak) UIButton *preButton;
@end
@implementation CZWheelView
+ (instancetype)wheelView{
return [[[NSBundle mainBundle] loadNibNamed:@"CZWheelView" owner:nil options:nil] lastObject];
}
//點擊開始按鈕
- (IBAction)startClick:(UIButton *)sender {
}
//1 生成12個按鈕
- (void)awakeFromNib{
int count = 12; //12個按鈕
for (int i = 0; i < count; i++) {
//創(chuàng)建按鈕
UIButton *btn = [UIButton buttonWithType:UIButtonTypeCustom];
[self.wheelView addSubview:btn];
//設置按鈕選中的背景圖片
UIImage *selBackImg = [UIImage imageNamed:@"LuckyRototeSelected"];
[btn setBackgroundImage:selBackImg forState:UIControlStateSelected];
//設置按鈕的大小
btn.width = selBackImg.size.width;
btn.height = selBackImg.size.height;
btn.center = self.wheelView.center;
//旋轉圖片
btn.layer.anchorPoint = CGPointMake(0.5, 1);
btn.transform = CGAffineTransformMakeRotation(i * M_PI*2/count);
//點擊按鈕
[btn addTarget:self action:@selector(btnClick:) forControlEvents:UIControlEventTouchUpInside];
//
self.wheelView.userInteractionEnabled = YES;
}
}
- (void)btnClick:(UIButton *)sender{
self.preButton.selected = NO;
sender.selected = YES;
self.preButton = sender;
}
@end