上一篇是写了 UINavigationController的特性。这篇记一下两种方式生成的不同。
1.IB实现。 IB实现等于多出一个类来专门做UINavigationController的初始化,相对于代码实现,没什么具体的差别。 创建一个UIViewController的IB,包含一个 NavigationController。
在类中建立 IBOutlet UINavigationController *navi; 然后将IB中的NavigationController和类中的navi连线。建立关系。然后在NavigationController中的指定第一个view是哪个。
最后在类的viewDidLoad方法中 [self.view addSubview:navi.view];。
在调用时,即loginview中,直接alloc类,然后[[self.view window]addSubview:v.view];
2.代码实现: 不需要特定的类,直接在loginview中
view1 *v1 = [[view1 alloc]initWithNibName:@"view1" bundle:nil];
NoxibWorkviewer *v = [[NoxibWorkviewer alloc]initWithRootViewController:v1];
[self.view addSubview:v.view];
所以本质上来说 代码实现和IB实现 就是 初始化的几句话单独拉了出去。
case MotionEvent.ACTION_MOVE:
NowX = event.getX();
break;
NowX: 相对于注册监听的控件的 横坐标
【
如果控件在最左边, NowX 一直大于0 小于屏幕宽
】
getX是获取以widget左上角为坐标原点计算的X轴坐标直.
getRawX 获取的是以屏幕左上角为坐标原点计算的X轴坐标直.
1,public final float getRawX()
Returns the original raw X coordinate of this event. For touch events on the screen, this is the original location of the event on the screen, before it had been adjusted for the containing window and views
2,public final float getX()
Returns the X coordinate of this event. Whole numbers are pixels; the value may have a fraction for input devices that are sub-pixel precise
view看做一个矩形,分别表示的是一个view的左边,上边,右边,下边距离他的父组件的距离。
getRight() =getLeft() + getWidth()。 getBottom()= getTop() + getHeight()
写在前面的话:本系列主要是学习sundy的Android深入浅出视频中的一些记录,心得。方便自己以后查阅。也供大家查看。欢迎交流,补充。
一般作为面试题(有些有答案,有些没有。问题一般从sundy老师思维导图中摘录,答案并非唯一标准,仅供参考):
1、android的进程是如何启动的?
简单的说就是有一个远程服务package service,再通过packageManager加载找到的应用程序manifest文件中的launcher activity,实例化该activity为入口的activity。
2、android的5个进程等级他们的区别,优先等级?
1) Foreground Process
正处于Activity Resume() 状态
正处于与bound服务交互的状态
正处于服务在前台运行的状态 , (startForeground() 被调用)
Service生命周期函数正在被执行 ( onCreate() , onStart() , onDestroy())
BroadcastReceiver 正在执行onReceive()方法
杀死Foreground Process 需要用户响应-因为这个安全优先级是最高的
2) Visible Process
Activity 不在前端显示 , 但也没有完全隐藏,能够看得见,比如弹出一个对话框 。(Input Method)
一个bound到visible 或者 foreground 的activity的 Service
3) Service Process
正在运行的,不在上述两种状态的Service
4) Background Process
不可见状态的Activity进程,(onStop()被调用)
5) Empty Process
没有运行任何Components的进程,保留这个进程主要是为了缓存的需要
3、如果又有Service又有Visible Activity怎么办?
From developer.android.com :
if a process hosts a service and a visible activity, the process is ranked as a visible process, not a service process.
当进程既有Service 并且 有Visible Activity的时候,进程会被认为是Visible 进程 。
结论 : 优先级高的为准 。