iOS UIView 创建是不是都会经过initWithFrame
1个回答
2017-06-25
展开全部
继承UIView的类是没有推出下一视图的系统功能的。
能够推出下一视图的系统方法有两种
一、UINavigationController的子类,用pushViewController的方法;
二、UIViewController的子类,用presentViewController的方法。
如果你实在是非要用UIView的子类推出下一视图,只有自己写个推出功能。
步骤如下:
1、新建一个UIView,大小跟屏幕一样大,初始化位置在屏幕之外;
2、用UIView的动画功能,将上一步新建的UIView移入屏幕内。
这样看起来的效果跟系统提供的功能效果差不多了。
代码大概如下所示:
//Screen_Width是屏幕宽度的宏定义
//Screen_Height是屏幕高度的宏定义
UIView *newView = [[UIView alloc] initWithFrame:CGRectMake(Screen_Width, 0, Screen_Width, Screen_Height)];
[self addSubview:newView];
[UIView transitionWithView:newView duration:3.0 options:0 animations:^{
//执行的动画
newView.center=CGPointMake(Screen_Width/2, Screen_Height/2);
} completion:^(BOOL finished) {
//动画执行完毕后的首位操作
NSLog(@"动画执行完毕");
}];
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询