当前位置: 代码迷 >> Iphone >> Iphone上面实现Android的Toast
  详细解决方案

Iphone上面实现Android的Toast

热度:33   发布时间:2016-04-25 06:21:03.0
Iphone下面实现Android的Toast

做过Android开发的Iphone开发人员也许会很怀念android的Toast,可以苹果并没有提供现成的API,网上搜索了一下,发现有一个开源的itoast,网址:http://code.google.com/p/toast-notifications-ios/,下载回来看一看,这个紧是个半成品,不支持屏幕旋转,这显然没有满足我们的要求,网上很多都是直接写一个UIView之后嵌入到当前的ViewController,并bringSubviewToFront到最顶层,可是当右多个ViewController的时候又又很多问题,还是不好用,下面我们来说说如何实现真正的iphone下面的Toast.这里提几个要点:

1,支持屏幕旋转:

?

UIWindow?*window = [[[UIApplication?sharedApplication]?windows]?objectAtIndex:0];

//注意哦下面的写发

[[[window?subviews]?objectAtIndex:0]?addSubview:self];


?

2,显示屏幕正中央:

?

UIWindow?*window = [[[UIApplication?sharedApplication]?windows]?objectAtIndex:0];

self.frame?=?CGRectMake(window.center.x-imSize.width/2, window.center.y-imSize.height/2, imSize.width, imSize.height);

self.autoresizingMask?=?UIViewAutoresizingFlexibleHeight|UIViewAutoresizingFlexibleWidth;


3,重写UIView的layoutSubviews,如下代码片段。

?

-(void) layoutSubviews{

? ??UIWindow?*window = [[[UIApplication?sharedApplication]?windows]?objectAtIndex:0];

?

?

?? ??CGSize?imSize = (initType?==IMAGE_TYPE)?(imageView.frame.size):(contentView.frame.size);

? ??UIInterfaceOrientation?orientation = [UIApplication?sharedApplication].statusBarOrientation;

? ??switch?(orientation) {

? ? ? ??case?UIInterfaceOrientationPortrait:

? ? ? ??case?UIInterfaceOrientationPortraitUpsideDown:

? ? ? ? {

? ? ? ? ? ??self.frame?=?CGRectMake(window.center.x-imSize.width/2, window.center.y-imSize.height/2, imSize.width, imSize.height);? ? ? ?

?layoutSubviews];

}

?

这样子就可以不用传递任何参数,直接显示在屏幕中间了。

?

  相关解决方案