WXHL学习总结(五)

无线互联奖学金学习文章连载(五)北京总部49期
经过 长达一个月的学习,现在可以做出简单的界面。说实话,比之前的东西有意思多了。以下是学习笔记。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。


UIButton按钮
· UIButton按钮,主要用来响应用户点击事件。· 常用属性
·buttonType 按钮显示样式类型·titleLabel 按钮标题文本Label对象。
//设置指定状态对应的标题⽂文本

- (void)setTitle:(NSString *)title forState:(UIControlState)state;
//设置指定状态对应的标题颜⾊色
- (void)setTitleColor:(UIColor *)color forState:(UIControlState)state;
//设置指定状态对应的显⽰示图⽚片
- (void)setImage:(UIImage *)image forState:(UIControlState)state;
//设置指定状态对应的背景图⽚片
- (void)setBackgroundImage:(UIImage *)image forState:(UIControlState)state;
//为按钮添加事件
- (void)addTarget:(id)target action:(SEL)action forControlEvents:(UIControlEvents)controlEvents;
//设置指定状态对应的标题⽂文本
- (void)setTitle:(NSString *)title forState:(UIControlState)state;
//设置指定状态对应的标题颜⾊色
- (void)setTitleColor:(UIColor *)color forState:(UIControlState)state;
//设置指定状态对应的显⽰示图⽚片
- (void)setImage:(UIImage *)image forState:(UIControlState)state;
//设置指定状态对应的背景图⽚片
- (void)setBackgroundImage:(UIImage *)image forState:(UIControlState)state;
//为按钮添加事件
- (void)addTarget:(id)target action:(SEL)action forControlEvents:(UIControlEvents)controlEvents;

UIButton状态
·button有很多种状态,不同的状态可以对应不同的按钮图片
UIButton状态:
UIControlStateNormalUIControlStateHighlightedUIControlStateDisabledUIControlStateSelectedUIControlStateApplication //UIControlStateReserved // 系统保留状态
UITextField示例代码
UItextField *textfield = [[UITextField alloc]initWithFrame:CGRectMake(20, 240, 200, 30)];
//禁⽌止⾸首字⺟母⼤大写
textfield.autocapitalizationType = UITextAutocapitalizationTypeNone;//设置键盘类型
textfield.keyboardType = UIKeyboardTypeNamePhonePad;//输⼊入框的边框类型
textfield.borderStyle = UITextBorderStyleRoundedRect;
//设置委托代理
textfield.delegate = self;
//键盘上的return按钮类型
textfield.returnKeyType = UIReturnKeyDone;//是否安全输⼊入,是的话,输⼊入内容将为星号
textfield.secureTextEntry = NO;
//清除按钮模式
textfield.clearButtonMode = UITextFieldViewModeAlways;//输⼊入框中的⽂文本颜⾊色
textfield.textColor = [UIColor redColor];
//输⼊入框的字体
textfield.font = [UIFont boldSystemFontOfSize:14];
-----------------------------------------------------------常用控件应用小案例之---QQ音乐---------------------------------------------

以下是部分代码:


-(void)loadMusic:(NSDictionary *)dic{


//歌手
NSString *singer = [dic objectForKey:@"singer"];
//歌名
NSString *song = [dic objectForKey:@"song"];
//专辑图
NSString *image = [dic objectForKey:@"image"];
//mp3url
NSString *url = [dic objectForKey: @"url"];
UILabel *songLbl =(UILabel*) [navigatonView viewWithTag:200];
UILabel *singerLbl =(UILabel*) [navigatonView viewWithTag:201];
songLbl.text= song;
singerLbl.text = singer;
imageView.image = [UIImage imageNamed:image];
rightBtn.selected = isLove[index];
[self play:url];
}


#pragma mark - 加载UI


//创建背景视图
-(void)_creatBackgroundView{


imageView = [[UIImageView alloc]initWithImage:[UIImage imageNamed:@"joy.jpg"]];
imageView.frame = CGRectMake(0, 0, KWIDTH, KHEIGHT);
[self.view addSubview:imageView];
//创建透明按钮
UIButton *imgBtn = [UIButton buttonWithType:UIButtonTypeCustom];
imgBtn.frame = imageView.bounds;
[imgBtn addTarget:self action:@selector(tapAction:) forControlEvents:UIControlEventTouchUpInside];
[self.view addSubview:imgBtn];
}


//创建导航栏背景视图
-(void)_createNavigationBar{


navigatonView = [[UIView alloc]initWithFrame:CGRectMake(0, 0, KWIDTH, 64)];
//设置毛玻璃效果
[navigatonView enableBlur:YES];
navigatonView.blurTintColor = [UIColor colorWithWhite:0.1 alpha:1];
navigatonView.blurStyle = UIViewBlurDarkStyle;
[self.view addSubview:navigatonView];
//2 创建左边按钮
UIButton *leftBtn = [UIButton buttonWithType:UIButtonTypeCustom];
leftBtn.frame = CGRectMake(0, 20, 64, 40);
[leftBtn setImage:[UIImage imageNamed:@"top_back_white@2x.png"] forState:UIControlStateNormal];
[leftBtn addTarget:self action:@selector(backAction:) forControlEvents:UIControlEventTouchUpInside];
[navigatonView addSubview:leftBtn];
//3 创建右边的按钮
//创建按钮
rightBtn = [UIButton buttonWithType:UIButtonTypeCustom];
//设置fram
rightBtn.frame = CGRectMake(KWIDTH-60, 20, 60, 40);
//设置图片
[rightBtn setImage:[UIImage imageNamed:@"playing_btn_love@2x"] forState:UIControlStateNormal];
[rightBtn setImage:[UIImage imageNamed:@"playing_btn_in_myfavor@2x"] forState:UIControlStateSelected];
//添加事件
[rightBtn addTarget:self action:@selector(loveAction:) forControlEvents:UIControlEventTouchUpInside];
//加入视图
[navigatonView addSubview:rightBtn];
//4 创建歌手 歌名的 label
UILabel *songLbl = [[UILabel alloc]initWithFrame:CGRectMake((KWIDTH-180)/2, 15, 180, 30)];
songLbl.tag = 200;
songLbl.textColor = [UIColor whiteColor];
songLbl.text = @"你给我听好";
songLbl.textAlignment = NSTextAlignmentCenter;
songLbl.font = [UIFont boldSystemFontOfSize:20];
[navigatonView addSubview:songLbl];
UILabel *singerlbl = [[UILabel alloc]initWithFrame:CGRectMake((KWIDTH-180)/2, 40, 180, 30)];
singerlbl.tag = 201;
singerlbl.textColor = [UIColor whiteColor];
singerlbl.text = @"陈奕迅";
singerlbl.textAlignment = NSTextAlignmentCenter;
singerlbl.font = [UIFont boldSystemFontOfSize:15];
[navigatonView addSubview:singerlbl];


}


//创建播放工具视图
-(void)_createPlayer{


//1 背景图
playBarView = [[UIView alloc]initWithFrame:CGRectMake(0, KHEIGHT-100, KWIDTH, 100)];
//毛玻璃
[playBarView enableBlur:YES];
[playBarView setBlurStyle:UIViewBlurDarkStyle];
[playBarView setBlurTintColor:[UIColor colorWithWhite:0.1 alpha:1]];
[self.view addSubview:playBarView];
//上一首按钮
UIButton *lastBtn = [UIButton buttonWithType:UIButtonTypeCustom];
lastBtn.tag = 100;
lastBtn.frame = CGRectMake(80, 30, 40, 40);
[lastBtn setImage:[UIImage imageNamed:@"playing_btn_pre_n"] forState:UIControlStateNormal];
[lastBtn setImage:[UIImage imageNamed:@"playing_btn_pre_h"] forState:UIControlStateHighlighted];
[lastBtn addTarget:self action:@selector(passSong:) forControlEvents:UIControlEventTouchUpInside];
[playBarView addSubview:lastBtn];
//下一首按钮
UIButton *nextButton = [UIButton buttonWithType:UIButtonTypeCustom];
nextButton.tag =101;
nextButton.frame = CGRectMake(245, 30, 40, 40);
[nextButton setImage:[UIImage imageNamed:@"playing_btn_next_n"] forState:UIControlStateNormal];
[nextButton setImage:[UIImage imageNamed:@"playing_btn_next_h"] forState:UIControlStateSelected];
[nextButton addTarget:self action:@selector(passSong:) forControlEvents:UIControlEventTouchUpInside];
[playBarView addSubview:nextButton];
//播放按钮
UIButton *playBtn = [UIButton buttonWithType:UIButtonTypeCustom];
playBtn.tag = 102;
playBtn.frame = CGRectMake(150, 17.5, 65, 65);
[playBtn setImage:[UIImage imageNamed:@"playing_btn_play_n@2x"] forState:UIControlStateNormal];
[playBtn setImage:[UIImage imageNamed:@"playing_btn_pause_n"] forState:UIControlStateSelected];
[playBtn addTarget:self action:@selector(playSong:) forControlEvents:UIControlEventTouchUpInside];
[playBarView addSubview:playBtn];
}


//创建进度条
-(void)_createProgressBar{


//进度时间
progressLbl = [[UILabel alloc]initWithFrame:CGRectMake(10, 10, 0, 0)];
progressLbl.text = @"00:00";
progressLbl.tag = 103;
progressLbl.textColor = [UIColor whiteColor];
progressLbl.textAlignment = NSTextAlignmentCenter;
progressLbl.font = [UIFont boldSystemFontOfSize:15];
[progressLbl sizeToFit];
[playBarView addSubview:progressLbl];
//总时间
UILabel *timerLbl = [[UILabel alloc]initWithFrame:CGRectMake(KWIDTH-45, 10, 0, 0)];
timerLbl.text = @"05:00";
timerLbl.tag = 104;
timerLbl.textColor = [UIColor whiteColor];
timerLbl.textAlignment = NSTextAlignmentCenter;
timerLbl.font = [UIFont boldSystemFontOfSize:15];
[timerLbl sizeToFit];
[playBarView addSubview:timerLbl];
//进度条
slider = [[UISlider alloc]initWithFrame:CGRectMake(0, KHEIGHT-120, KWIDTH, 40)];
slider.maximumValue = 300;
slider.minimumValue = 0;
[slider setMinimumTrackImage:[UIImage imageNamed:@"playing_slider_play_left"] forState:UIControlStateNormal];
[slider setMaximumTrackImage:[UIImage imageNamed:@"playing_slider_play_right"] forState:UIControlStateNormal];
[slider setThumbImage:[UIImage imageNamed:@"playing_slider_thumb"] forState:UIControlStateNormal];
[slider addTarget:self action:@selector(sliderAction:) forControlEvents:UIControlEventValueChanged];
[self.view addSubview:slider];


}


-(void)play:(NSString*)fileName{
NSString *path = [[NSBundle mainBundle]pathForResource:fileName ofType:nil];
NSURL *url = [NSURL fileURLWithPath:path];
player = [[AVAudioPlayer alloc]initWithContentsOfURL:url error:nil];
[player play];
//滑块的设置
slider.value = 0;
slider.maximumValue = player.duration;
//改变播放按钮的选中状态
UIButton *plyBtn = (UIButton*) [playBarView viewWithTag:102];
plyBtn.selected = YES;
//改变 总时间label
UILabel *timeLbl = (UILabel*)[playBarView viewWithTag:104];
timeLbl.text = [self converTimer:slider.maximumValue];
//开启定时器
if (timer!= nil) {
[timer invalidate];
timer = nil;
}
timer = [NSTimer scheduledTimerWithTimeInterval:1 target:self selector:@selector(timerAction:) userInfo:nil repeats:YES];


}


#pragma mark - Action
-(void)sliderAction:(UISlider *)sld{
int value = sld.value;
progressLbl.text = [self converTimer:value];


player.currentTime = value;
}


-(void)playSong:(UIButton *)btn{


if (btn.selected) {
NSLog(@"暂停");
[timer invalidate];
timer = nil;
[player pause];
}else {
NSLog(@"播放");
timer = [NSTimer scheduledTimerWithTimeInterval:1 target:self selector:@selector(timerAction:) userInfo:nil repeats:YES];
[playerplay];
}
btn.selected = !btn.selected;
}


-(void)passSong:(UIButton *)btn{


if (btn.tag == 100) {
index--;
NSLog(@"上一首");
}else if (btn.tag == 101){
index++;
NSLog(@"下一首");
}
//当索引小于0时,切换到最后一张
if(index < 0) {
index = (int)music.count-1;
//当索引是最后一张时,切换到第一张
}else if (index >= music.count) {
index = 0;
}
// imageView.image =[images objectAtIndex:index];
NSDictionary *dic = [music objectAtIndex:index];
[self loadMusic:dic];


}


-(void)tapAction:(UIButton *)btn{


NSLog(@"隐藏");
[UIView animateWithDuration:0.5 animations:^{


if (isHide) {
navigatonView.alpha = 1;
playBarView.alpha = 1;
slider.alpha = 1;
}else{
navigatonView.alpha = 0;
playBarView.alpha = 0;
slider.alpha = 0;
}
}];


isHide = !isHide;


}


-(void)backAction:(UIButton *)btn{


NSLog(@"返回");


}


-(void)loveAction:(UIButton *)btn{
if (!btn.selected) {
NSLog(@"收藏");
}else{


NSLog(@"取消收藏");
}
isLove[index] = !isLove[index];
btn.selected = !btn.selected;


}


#pragma mark - Timer


-(void)timerAction:(NSTimer*)timer{


slider.value++;
UILabel *progressLbl1 = (UILabel *)[playBarView viewWithTag:103];
progressLbl1.text = [self converTimer:slider.value];
if (slider.value >= slider.maximumValue) {
[timer invalidate];
}
}


-(NSString *)converTimer:(int)t{


int m = t/60;
int s = t%60;
NSString *timeString = [NSString stringWithFormat:@"%02d:%02d",m,s];


return timeString;


}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值