欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  移动技术

IOS 仿Android吐司提示框的实例(分享)

程序员文章站 2023-12-17 10:41:16
直接上代码 #import @interface showtoastview : uiview +(void)sh...

直接上代码

#import <uikit/uikit.h>
@interface showtoastview : uiview
+(void)showtoastview:(uiview *)uiview withmessage:(nsstring *)message;

+(void)showtoastviewshort:(uiview *)uiview withmessage:(nsstring *)message;

+(void)showtoastviewwithcostupload:(uiview *)uiview withmessage:(nsstring *)message;

+(void)showsmallheighttoastview:(uiview *)uiview withmessage:(nsstring *)message;
@end
#import "showtoastview.h"
@implementation showtoastview
//toast提示框
+(void)showtoastview:(uiview *)uiview withmessage:(nsstring *)message
{
  uiview *showview = [[uiview alloc]init];
  showview.backgroundcolor = [uicolor colorwithred:0 green:0 blue:0 alpha:.3];
  showview.frame = cgrectmake(1, 1, 1, 1);
  showview.layer.cornerradius = 5.0f;
  showview.layer.maskstobounds = yes;
  [uiview addsubview:showview];
  uilabel *label = [[uilabel alloc]init];
  cgsize labelsize = [message sizewithfont:[uifont systemfontofsize:17] constrainedtosize:cgsizemake(290, 9000)];
  label.frame = cgrectmake(10, 5, labelsize.width, labelsize.height);
  label.text = message;
  label.textcolor = [uicolor whitecolor];
  label.textalignment = 1;
  label.backgroundcolor = [uicolor clearcolor];
  label.font = [uifont boldsystemfontofsize:font(15)];
  [showview addsubview:label];
  showview.frame = cgrectmake((uiview.frame.size.width - labelsize.width - 20)/2, uiview.frame.size.height - labelsize.height-100, labelsize.width+20, labelsize.height+10);
  [uiview animatewithduration:5.0 animations:^{
    showview.alpha = 0;
  } completion:^(bool finished) {
    [showview removefromsuperview];
  }];
}
+(void)showtoastviewshort:(uiview *)uiview withmessage:(nsstring *)message
{
  uiview *showview = [[uiview alloc]init];
  showview.backgroundcolor = [uicolor whitecolor];
  showview.frame = cgrectmake(1, 1, 1, 1);
  showview.layer.cornerradius = 5.0f;
  showview.layer.maskstobounds = yes;
  [uiview addsubview:showview];
  uilabel *label = [[uilabel alloc]init];
  cgsize labelsize = [message sizewithfont:[uifont systemfontofsize:17] constrainedtosize:cgsizemake(290, 9000)];
  label.frame = cgrectmake(10, 5, labelsize.width, labelsize.height);
  label.text = message;
  label.textcolor = [uicolor blackcolor];
  label.textalignment = 1;
  label.backgroundcolor = [uicolor clearcolor];
  label.font = [uifont boldsystemfontofsize:15];
  [showview addsubview:label];
  showview.frame = cgrectmake((uiview.frame.size.width - labelsize.width - 20)/2, uiview.frame.size.height - labelsize.height-60, labelsize.width+20, labelsize.height+10);
  [uiview animatewithduration:1 animations:^{
    showview.alpha = 0;
  } completion:^(bool finished) {
    [showview removefromsuperview];
  }];
}
//费用提报的toast位置往上放一点
+(void)showtoastviewwithcostupload:(uiview *)uiview withmessage:(nsstring *)message
{
  uiview *showview = [[uiview alloc]init];
  showview.backgroundcolor = [uicolor colorwithred:0 green:0 blue:0 alpha:.3];
  showview.frame = cgrectmake(1, 1, 1, 1);
  showview.layer.cornerradius = 5.0f;
  showview.layer.maskstobounds = yes;
  [uiview addsubview:showview];
  uilabel *label = [[uilabel alloc]init];
  cgsize labelsize = [message sizewithfont:[uifont systemfontofsize:17] constrainedtosize:cgsizemake(290, 9000)];
  label.frame = cgrectmake(10, 5, labelsize.width, labelsize.height);
  label.text = message;
  label.textcolor = [uicolor whitecolor];
  label.textalignment = 1;
  label.backgroundcolor = [uicolor clearcolor];
  label.font = [uifont boldsystemfontofsize:font(15)];
  [showview addsubview:label];
  showview.frame = cgrectmake((uiview.frame.size.width - labelsize.width - 20)/2, uiview.frame.size.height - labelsize.height-100, labelsize.width+20, labelsize.height+10);
  [uiview animatewithduration:3.0 animations:^{
    showview.alpha = 0;
  } completion:^(bool finished) {
    [showview removefromsuperview];
  }];
}
//点击开始按钮的时候提示没有任务,但是由于字数太多,高度又和宽度有一定的对比,所以在这里改成小一点高度
+(void)showsmallheighttoastview:(uiview *)uiview withmessage:(nsstring *)message
{
  uiview *showview = [[uiview alloc]init];
  showview.backgroundcolor = [uicolor colorwithred:0 green:0 blue:0 alpha:.3];
  showview.frame = cgrectmake(1, 1, 1, 1);
  showview.layer.cornerradius = 5.0f;
  showview.layer.maskstobounds = yes;
  [uiview addsubview:showview];
  uilabel *label = [[uilabel alloc]init];
  cgsize labelsize = [message sizewithfont:[uifont systemfontofsize:17] constrainedtosize:cgsizemake(290, 9000)];
  label.frame = cgrectmake(10, 0, labelsize.width, labelsize.height);
  label.text = message;
  label.textcolor = [uicolor whitecolor];
  label.textalignment = 1;
  label.backgroundcolor = [uicolor clearcolor];
  label.font = [uifont boldsystemfontofsize:font(15)];
  [showview addsubview:label];
  showview.frame = cgrectmake((uiview.frame.size.width - labelsize.width - 20)/2, uiview.frame.size.height - labelsize.height-60, labelsize.width+20, labelsize.height-5);
  [uiview animatewithduration:5.0 animations:^{
    showview.alpha = 0;
  } completion:^(bool finished) {
    [showview removefromsuperview];
  }];
}

@end

使用方法

[showtoastview showtoastview:self.view withmessage:@"用户名或密码错误"];

以上这篇ios 仿android吐司提示框的实例(分享)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。

上一篇:

下一篇: