6-2 老师,我已经按照你的改正了,还是没有显示出硬币和金额...
来源:6-2 作业题
SiuNam
2018-10-12 09:55:21
//
// ViewController.m
// 看图猜字游戏
//
// Created by on 2018/10/9.
// Copyright © 2018年 lzn. All rights reserved.
//
#import "ViewController.h"
#import "DiyCoinView.h"
@interface ViewController ()
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
[self addUpView];
//[self addcoinView];
}
-(void)addUpView{
UIView *UpView = [[UIView alloc]initWithFrame:CGRectMake(0, 0, 375, 390)];
UpView.backgroundColor = [UIColor colorWithRed:178/255.0 green:34/255.0 blue:34/255.0 alpha:1];
[self.view addSubview:UpView];
DiyCoinView *coin = [[DiyCoinView alloc]init];
coin.backgroundColor = UIColor.clearColor;
coin.coinImageView.image = [UIImage imageNamed:@"coin.png"];
coin.money.text = @"20000";
coin.money.textColor = [UIColor blackColor];
[self.view addSubview:coin];
}
/*
//硬币图片加个数
-(void)addcoinView{
DiyCoinView *coin = [[DiyCoinView alloc]initWithFrame:CGRectMake(244, 20, 131, 30)];
coin.backgroundColor = UIColor.clearColor;
coin.coinImageView.image = [UIImage imageNamed:@"coin.png"];
coin.money.text = @"20000";
[self.view addSubview:coin];
}
*/
- (void)didReceiveMemoryWarning {
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
@end// // DiyCoinView.h // 看图猜字游戏 // // Created by on 2018/10/12. // Copyright © 2018年 lzn. All rights reserved. // #import <UIKit/UIKit.h> @interface DiyCoinView : UIView @property(nonatomic,weak) UIImageView *coinImageView; @property(nonatomic,weak) UILabel *money; @end
//
// DiyCoinView.m
// 看图猜字游戏
//
// Created by on 2018/10/12.
// Copyright © 2018年 lzn. All rights reserved.
//
#import "DiyCoinView.h"
@implementation DiyCoinView
/*
// Only override drawRect: if you perform custom drawing.
// An empty implementation adversely affects performance during animation.
- (void)drawRect:(CGRect)rect {
// Drawing code
}
*/
-(instancetype)initWithFrame:(CGRect)frame{
if(self=[super initWithFrame:frame]){
UIImageView *coinImageView = [[UIImageView alloc]init];
self.coinImageView = coinImageView;
[self addSubview:coinImageView];
UILabel *money = [[UILabel alloc]init];
money.textAlignment = NSTextAlignmentCenter;
self.money = money;
[self addSubview:money];
}
return self;
}
-(void)layoutSubviews{
[super layoutSubviews];
CGFloat coinImageViewX = 244;
CGFloat coinImageViewY = 20;
CGFloat coinImageViewW = 30;
CGFloat coinImageViewH = 30;
self.coinImageView.frame = CGRectMake(coinImageViewX, coinImageViewY, coinImageViewW, coinImageViewH);
CGFloat moneyLabelX = 244+coinImageViewX;
CGFloat moneyLabelY = 20;
CGFloat moneyLabelW = 30;
CGFloat moneyLabelH = 30;
self.money.frame = CGRectMake(moneyLabelX, moneyLabelY, moneyLabelW, moneyLabelH);
}
@end
1回答
Tender10
2018-10-12
根据你的代码我帮你重新调整了一下,你可以参考如下代码哦:
// DiyCoinView.h
#import <UIKit/UIKit.h>
#import "CustomModel.h"
@interface DiyCoinView : UIView
@property(nonatomic,weak) UIImageView *coinImageView;
@property(nonatomic,weak) UILabel *money;
@property (nonatomic, strong) CustomModel *model;
@end
// DiyCoinView.m
#import "DiyCoinView.h"
#import "CustomModel.h"
@implementation DiyCoinView
-(instancetype)initWithFrame:(CGRect)frame{
if(self=[super initWithFrame:frame]){
UIImageView *coinImageView = [[UIImageView alloc]init];
self.coinImageView = coinImageView;
[self addSubview:coinImageView];
UILabel *money = [[UILabel alloc]init];
money.textAlignment = NSTextAlignmentCenter;
self.money = money;
[self addSubview:money];
}
return self;
}
-(void)layoutSubviews{
[super layoutSubviews];
CGFloat coinImageViewX = self.frame.origin.x;
CGFloat coinImageViewY = self.frame.origin.y;
CGFloat coinImageViewW = 30;
CGFloat coinImageViewH = self.frame.size.height;
self.coinImageView.frame = CGRectMake(coinImageViewX, coinImageViewY, coinImageViewW, coinImageViewH);
CGFloat moneyLabelX = self.frame.origin.x+40;
CGFloat moneyLabelY = self.frame.origin.y;
CGFloat moneyLabelW = self.frame.size.width-40;
CGFloat moneyLabelH = self.frame.size.height;
self.money.frame = CGRectMake(moneyLabelX, moneyLabelY, moneyLabelW, moneyLabelH);
}
- (void)setModel:(CustomModel *)model
{
_model = model;
self.coinImageView.image = [UIImage imageNamed:model.icon];
self.money.text = model.name;
}
@end
// CustomModel.h
#import <Foundation/Foundation.h>
@interface CustomModel : NSObject
/**
* 金钱
*/
@property (nonatomic, copy) NSString *name;
/**
* 图片
*/
@property (nonatomic, copy) NSString *icon;
+ (instancetype)modelWithName:(NSString *)name icon:(NSString *)icon;
- (instancetype)initWithName:(NSString *)name icon:(NSString *)icon;
@end
// CustomModel.m
#import "CustomModel.h"
@implementation CustomModel
+ (instancetype)modelWithName:(NSString *)name icon:(NSString *)icon
{
return [[self alloc] initWithName:name icon:icon];
}
- (instancetype)initWithName:(NSString *)name icon:(NSString *)icon
{
if (self = [super init]) {
self.name = name;
self.icon = icon;
}
return self;
}
@end
// ViewController.m
#import "ViewController.h"
#import "DiyCoinView.h"
#import "CustomModel.h"
@interface ViewController ()
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
[self addUpView];
//[self addcoinView];
}
-(void)addUpView{
// 创建自定义的View
DiyCoinView *customView = [[DiyCoinView alloc] init];
// 设置数据
CustomModel *model = [CustomModel modelWithName:@"hosea_zhou" icon:@"1"];
customView.model = model;
// 设置frame
customView.frame = CGRectMake(100, 100, 100, 100);
// 添加子控件
[self.view addSubview:customView];
}
- (void)didReceiveMemoryWarning {
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
@end上述就是实现的代码哦,位置我没有仔细给你调整,你可以自己再设置一个比较好的位置,调整一下就好。如果还有什么不明白的地方,可以在问答里继续提问,老师都会帮助解决。祝学习愉快~
相似问题