博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
(ios实战)实现类似于android 的toast控件
阅读量:5162 次
发布时间:2019-06-13

本文共 2090 字,大约阅读时间需要 6 分钟。

1实现原理

 创建一个自定义控件,控件中显示文本,同时设置一个动画,三秒钟后,控件的alpha为0,动画完成后,控件移出掉ViewControl

 

2 创建PopView

2.1 PopView.h 部分

@interface PopView : UIView{    UILabel         *_textLabel;    int             _queueCount;}- (void) setText:(NSString *) text;@end

2.2 PopView.m

#import "PopView.h"#import 
@implementation PopView- (id)initWithFrame:(CGRect)frame{ self = [super initWithFrame:frame]; if (self) { self.backgroundColor = [[UIColor blackColor] colorWithAlphaComponent: 0.75f]; self.layer.cornerRadius = 5.0f; _textLabel = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, 100, 10)]; _textLabel.numberOfLines = 0; _textLabel.font = [UIFont systemFontOfSize:17]; _textLabel.textColor = [UIColor whiteColor]; _textLabel.textAlignment = NSTextAlignmentCenter; _textLabel.backgroundColor = [UIColor clearColor]; _textLabel.textAlignment = NSTextAlignmentCenter; [self addSubview:_textLabel]; _queueCount = 0; } return self;}- (void) setText:(NSString *) text{ _textLabel.frame = CGRectMake(0, 0, 100, 10); _queueCount ++; self.alpha = 1.0f; _textLabel.text = text; [_textLabel sizeToFit]; CGRect frame = CGRectMake(5, 0, _textLabel.frame.size.width, _textLabel.frame.size.height); _textLabel.frame = frame; frame = CGRectMake(self.frame.origin.x, self.frame.origin.y, _textLabel.frame.size.width+10, _textLabel.frame.size.height+10); self.frame = frame; [UIView animateWithDuration:3.0 delay:0.0 options:UIViewAnimationOptionCurveEaseIn animations:^{ self.alpha = 0; } completion:^(BOOL finished){ if (_queueCount == 1) { [self removeFromSuperview]; } _queueCount--; } ]; }@end

3 调用方式:

[self.view addSubview:_popView];    [_popView setText:@"合成恢复"];

 

转载于:https://www.cnblogs.com/macroxu-1982/archive/2013/06/12/3132516.html

你可能感兴趣的文章
Mysql MHA高可用集群架构
查看>>
心急的C小加
查看>>
编译原理 First,Follow,select集求法
查看>>
java 浅拷贝和深拷贝
查看>>
vue实例中中data属性三种写法
查看>>
uva1636 - Headshot(条件概率)
查看>>
iOS开发 runtime实现原理以及实际开发中的应用
查看>>
488 - Triangle Wave
查看>>
BZOJ2437 NOI2011兔兔与蛋蛋(二分图匹配+博弈)
查看>>
android 学习资源网址
查看>>
shell基础
查看>>
2018.1.15
查看>>
[集合DP] UVA 10651 Pebble Solitaire
查看>>
测试成长之路
查看>>
jquary常见问题总结
查看>>
java时间格式大全
查看>>
Javascript中eval解析的json的几种用法
查看>>
Dashbroad 展现数据
查看>>
Jedis路由key的算法剥离
查看>>
Codeforces Round #485 (Div. 2)
查看>>