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

本文共 2017 字,大约阅读时间需要 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:@"合成恢复"];

 

转载地址:http://ryhnx.baihongyu.com/

你可能感兴趣的文章
PXE-cobbler 无人值守装机------续
查看>>
关于-O0、O1、O2、O3优化
查看>>
ajax笔记
查看>>
布局模型
查看>>
Jquery弹窗
查看>>
生日小助手
查看>>
bzoj 2194 快速傅立叶之二
查看>>
51nod 1443 路径和树——最短路生成树
查看>>
17th, Jan 2012 今天的时间表
查看>>
[精华][推荐]CAS SSO 实现单点登录实例源码
查看>>
IIS 部署WCF时遇到这么个错:
查看>>
VSS Teamwork 环境架设[文章汇编集]
查看>>
VC++ 在两个程序中 传递字符串等常量值的方法:使用了 WM_COPYDATA 消息的
查看>>
拓扑资料
查看>>
x86_64平台编译链接汇编程序
查看>>
POJ3126 Prime Path(BFS)
查看>>
VC6.0多线程例程
查看>>
Unity 3D-AR开发-Vuforia教程手册
查看>>
放球问题 组合数学 转自百度百科
查看>>
神经网络的火热
查看>>