UI考试题

※ 选择题(共25题,每题3分)



1、

当程序从后台将要重新回到前台的时候,会先执行以下哪个方法:

答案:(B)

  • A、- (void)applicationDidFinishLaunching:(UIApplication*)application{ }
  • B、- (void)applicationWillEnterForeground:(UIApplication *)application{ }
  • C、- (void)applicationDidBecomeActive:(UIApplication *)application{ }
  • D、 - (void)applicationWillTerminate:(UIApplication *)application{ }


2、

对于UISearchBar,要实现实时搜索(即搜索内容实时发生变化时),会执行以下哪个方法:

答案:(C)

  • A、- (void)searchBarTextDidEndEditing:(UISearchBar *)searchBar;
  • B、- (BOOL)searchBarShouldEndEditing:(UISearchBar *)searchBar;
  • C、- (void)searchBar:(UISearchBar *)searchBar textDidChange:(NSString *)searchText{ }
  • D、- (void)searchBarResultsListButtonClicked:(UISearchBar *)searchBar{ }


3、

以下的代码会出现什么问题:
@implementation Person
- (void)setAge:(int)newAge {
  self.age = newAge;
}
@end

答案:(B)

  • A、会造成循环引用
  • B、会造成死循环
  • C、会出现内存泄露
  • D、会出现野指针


4、

以下不属于ios中实现多线程的方法是:

答案:(D)

  • A、NSThread
  • B、NSOperationQueue
  • C、Grand Central Dispatch(GCD)
  • D、NSURLRequest


5、

以下对多线程开发的理解错误的是:

答案:(B)

  • A、发挥多核处理器的优势,并发执行让系统运行的更快、更流畅,用户体验更好
  • B、多线程程序中,一个进程包含2个以上的线程(含2个)
  • C、大量的线程降低代码的可读性,但不需要更多的内存空间
  • D、当多个线程对同一个资源出现争夺的时候要注意线程安全的问题


6、

下面对UIView、UIWindow和CALayer理解错误的是:

答案:(C)

  • A、UIView继承于UIResponder
  • B、UIResponder继承于NSObject,UIView可以响应用户事件。
  • C、UIResponder继承与NSObject,CALayer继承于NSObject,CALayer可以响应事件。
  • D、UIView是用来显示内容的,可以处理用户事件,CALayer是用来绘制内容的,依赖与UIView来进行显示


7、

对于UIScrollViewController,scrollView将开始降速时,执行的方法是:

答案:(D)

  • A、- (void)scrollViewWillBeginDragging:(UIScrollView *)scrollView;{ }
  • B、- (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView;{ }
  • C、- (void)scrollViewDidEndScrollingAnimation:(UIScrollView *)scrollView;{ }
  • D、- (void)scrollViewWillBeginDecelerating:


8、

对于UICollectionViewController,实现定义每个元素的margin(边缘 上-左-下-右) 的方法是:

答案:(B)

  • A、

    - (CGSize)collectionView:(UICollectionView *)collectionView
     layout:(UICollectionViewLayout*)collectionViewLayout sizeForItemAtIndexPath:(NSIndexPath *)indexPath
    {
     return CGSizeMake();
    }
    
  • B、
    - (UIEdgeInsets)collectionView:(UICollectionView *)collectionView
     layout:(UICollectionViewLayout*)collectionViewLayout insetForSectionAtIndex:(NSInteger)section
    {
     return UIEdgeInsetsMake();
    }
    
  • C、
    - (CGSize)collectionView:(UICollectionView *)collectionView
     layout:(UICollectionViewLayout*)collectionViewLayout referenceSizeForHeaderInSection:(NSInteger)section
    {
     return CGSizeMake();
    }
    
  • D、
    - (CGSize)collectionView:(UICollectionView *)collectionView
     layout:(UICollectionViewLayout*)collectionViewLayout referenceSizeForFooterInSection:(NSInteger)section
    {
     return CGSizeMake();
    }
    


9、

在MVC框架中,M与C通讯,通常使用什么方式?//M与C K与C都是通过KVO方式通讯

答案:(A)

  • A、KVO与通知
  • B、协议-代理
  • C、类目
  • D、属性


10、

以下关于导航栏外观属性对应的解释错误的是:

答案:(D)

  • A、barStyle bar的样式
  • B、translucent bar的透明度
  • C、backgroundImage bar的背景图片
  • D、barTintColor bar上控件的颜色  //改变导航栏的颜色


11、

实现一个singleton的类,下面正确的是:

答案:(A)

  • A、

    static LOSingleton * shareInstance;
    + ( LOSingleton *)sharedInstance{
     @synchronized(self){
      if (shareInstance == nil) {
       shareInstance = [[self alloc] init];
      }
     }
     return shareInstance;
    }
    
  • B、
    static LOSingleton * shareInstance;
    - ( LOSingleton *)sharedInstance{
     @synchronized(self){
      if (shareInstance == nil) {
       shareInstance = [[self alloc] init];
      }
     }
     return shareInstance;
    }
    
  • C、
    + (LOSingleton *) sharedInstance
    {
     LOSingleton *sharedInstance = nil ;
     static dispatch_once_t onceToken;
     dispatch_once (& onceToken, ^ {
      sharedInstance = [[self alloc] init];
     });
     return sharedInstance;
    }
    
  • D、
    - (LOSingleton *) sharedInstance
    {
     static LOSingleton *sharedInstance = nil ;
     static  dispatch_once_t onceToken;
     dispatch_once (& onceToken, ^ {
      sharedInstance = [[self alloc] init];
     });
     return sharedInstance;
    }
    


12、

以下哪个方法在当程序将要退出时被调用,且通常在此方法里写一些用来保存数据和一些退出前的清理工作。

答案:(B)

  • A、- (void)applicationExitsOnSuspend:(UIApplication *)application{ }
  • B、- (void)applicationDidEnterBackground:(UIApplication *)application{ }
  • C、- (void)applicationWillTerminate:(UIApplication *)application{ }
  • D、- (void)applicationDidFinishLaunching:(UIApplication *)application{ }


13、

获取tableview正在window上显示的cell的indexPath方法是:

答案:(B)

  • A、- (UITableViewCell *)cellForRowAtIndexPath:(NSIndexPath *)indexPath;
  • B、- (NSArray *)indexPathsForVisibleRows;
  • C、- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath;
  • D、- (void)tableView:(UITableView *)tableView didDeselectRowAtIndexPath:(NSIndexPath *)indexPath;


14、

下面关于深拷贝与浅拷贝理解正确的是:

答案:(A)

  • A、深拷贝拷贝的是内容,浅拷贝拷贝的是指针。
  • B、深拷贝和浅拷贝最大的区别就是子类对象的地址是否改变。
  • C、深拷贝是对对象本身复制,但是不对对象的属性进行复制。
  • D、如果子类对象的地址改变那么就是深拷贝。


15、

很多内置类如UITableViewController的delegate属性都是assign而不是retain,这是为了:

答案:(D)

  • A、防止造成内存泄露
  • B、防止出现野指针
  • C、防止出现过度释放
  • D、防止循环引用


16、

关于OC内存管理方面说法错误的是:

答案:(B)

  • A、OC中的内存管理采用引用计数机制
  • B、autorelease pool 是OC中一种自动的垃圾回收机制
  • C、alloc、new或copy来创建一个对象,那么你必须调用release或autorelease
  • D、OC的内存管理机制本质上还是C语言中的手动管理方式,只不过稍加了一些自动方法


17、

关于系统自带的UITableViewCell,以下说法正确的是:

答案:(D)

  • A、Cell基本组成:编辑、内容、辅助
  • B、编辑:editView。tableView被编辑时显示
  • C、内容:contentView。包含imageView,textField等
  • D、accessoryView。显示cell的辅助信息


18、

应用程序启动顺序正确的是:
①在UIApplication代理实例中重写启动方法,设置第一个ViewController
②程序入口main函数创建UIApplication实例和UIApplication代理实例
③在第一个ViewController中添加控件,实现对应的程序界面。

答案:(B)

  • A、①②③
  • B、②①③
  • C、①③②
  • D、③①②


19、

实现一个生成Student实例对象的便利构造器的正确写法是:

答案:(A)

  • A、

    + (id)studentWithName:(NSString *)newName andAge:(int)newAge
    {
      Student *stu = [[[Student alloc] initWithName:newName andAge:newAge] autorelease];
      return stu;
    }
    
  • B、
    - (id)studentWithName:(NSString *)newName andAge:(int)newAge
    {
      Student *stu = [[Student alloc] initWithName:newName andAge:newAge];
      return [stu autorelease];
    }
    
  • C、
    - (void)studentWithName:(NSString *)newName andAge:(int)newAge
    {
      Student *stu = [[Student alloc] initWithName:newName andAge:newAge];
      return [stu autorelease];
    }
    
  • D、
    + (void)studentWithName:(NSString *)newName andAge:(int)newAge
    {
      Student *stu = [[Student alloc] initWithName:newName andAge:newAge];
      return [stu autorelease];
    }
    


20、

以下关于视图的frame与bounds的理解错误的是:

答案:(A)

  • A、bounds是指这个view在window坐标系的坐标和大小
  • B、frame指的是这个view在它superview的坐标系的坐标和大小
  • C、frame和bounds是UIView中的两个属性(property)。
  • D、一个是以自身左上角的店为原点的坐标系,一个是以屏幕左上角的点为原点的坐标系。


21、

UITableView重用机制中,会将重用的cell放到哪种类型的集合中。

答案:(B)

  • A、NSMutableArray
  • B、NSMutableSet
  • C、NSDictionary
  • D、NSMutableDictionary


22、

当应用程序将要进入非活动状态执行,在此期间,应用程序不接收消息或事件,比如来电话了,此时会先执行以下哪个方法:

答案:(D)

  • A、- (void)applicationDidBecomeActive:(UIApplication *)application{ }
  • B、- (void)applicationDidEnterBackground:(UIApplication *)application{ }
  • C、- (void)applicationWillTerminate:(UIApplication *)application{ }
  • D、- (void)applicationWillResignActive:(UIApplication *)application{ }


23、

以下哪个控件不是继承于UIControl

答案:(D)

  • A、UIButton
  • B、UITextField
  • C、UISlider
  • D、UITextView


24、

对于UISegmentedControl,实现在指定索引插入一个选项并设置图片的方法是:

答案:(B)

  • A、[segmentedControl setImage:[UIImage imageNamed:@"btn_jyy.png"] forSegmentAtIndex:3];
  • B、[segmentedControl insertSegmentWithImage:[UIImage imageNamed:@"mei.png"] atIndex:2 animated:NO];
  • C、[segmentedControl insertSegmentWithTitle:@"insert" atIndex:3 animated:NO];
  • D、[[UIImageViewalloc]initWithImage:[segmentedControl imageForSegmentAtIndex:1]];


25、

对于UIScrollViewController,监控目前滚动的位置的属性是:

答案:(A)

  • A、contentOffSet
  • B、contentSize
  • C、contentInset
  • D、scrollIndicatorInsets

※ 判断题(共5题,每题3分)



1、

UISlider、UISwitch、UITextField这些类都继承于UIControl这个类。

答案:(T)

  • 正确
  • 错误


2、

[segmentedControl titleForSegmentAtIndex: ]表示指定索引文字的选项。

答案:(T)

  • 正确
  • 错误


3、

[self.view popToViewController: animated: YES];表示弹出一个视图控制器,到指定视图控制器上。

答案:(F)

  • 正确
  • 错误


4、

[textField resignFirstResponder]; 表示让文本输入框成为第一响应者, 弹出键盘进入编辑模式。

答案:(F)

  • 正确
  • 错误


5、

numberOfTapsRequired这个方法能获取到的是有几只手指点击。

答案:(F)

  • 正确
  • 错误

[关闭]



UI考试题

时间: 2024-12-16 05:40:22

UI考试题的相关文章

基于jquery开发的UI框架整理分析

根据调查得知,现在市场中的UI框架差不多40个左右,不知大家都习惯性的用哪个框架,现在市场中有几款UI框架稍微的成熟一些,也是大家比较喜欢的一种UI框架,那应该是jQuery,有部分UI框架都是根据jQuery研发出来的产品,现在也很常见了. 国产jQuery UI框架 (jUI) DWZ DWZ富客户端框架(jQuery RIA framework), 是中国人自己开发的基于jQuery实现的Ajax RIA开源框架.设计目标是简单实用,快速开发,降低ajax开发成本. jQuery 部件布局

iOS instruments之ui automation的简单使用(高手绕道)

最近使用了几次instruments中的automation工具,现记录下automation的简单使用方法,希望对没接触过自动化测试又有需求的人有所帮助.  UI 自动测试是iOS 中重要的附加功能,它由名为"Automation"的新的工具对象支持.Automation工具的脚本是用JavaScript语言编写,主要用于分析应用的性能和用户行为,模仿/击发被请求的事件,利用它可以完成对被测应用的简单的UI测试及相关功能测试. 一. 简单的录制脚本 打开xcode,这里用我为我家亲爱

RDVECore来自锐动的无UI,高度抽象化API的视频编辑SDK--IOS版

1 编写目的 预期读者: 有视频编辑开发经验或者无经验的,打算或者正在使用"锐动IOS版RDVECore"的相关工程师. iOS软件工程师. 产品经理. QA 2 名词解释 分辨率:用于计算机视频处理的图像,以水平和垂直方向上所能显示的像素数来表示分辨率.常见视频分辨率的有1080P即1920x1080,720P即1080x720,640x480等. 帧率:每秒的帧数(fps)或者说帧率表示图形处理器处理场时每秒钟能够更新的次数. 码率: 数据传输时单位时间传送的数据位数,一般我们用的

UI渲染回顾简单笔记

UI渲染的简单过程: CPU,GPU,显示器协同工作,CPU 中计算显示内容,比如视图的创建.布局计算.图片解码.文本绘制等,然后将计算结果提交给GPU,由 GPU 进行变换.合成.渲染.随后 GPU 会把渲染结果提交到帧缓冲区去,随后等待下一次 VSync(垂直同步信号) 到来时,视频控制器会逐行读取帧缓冲区的数据,经过可能的数模转换传递给显示器显示.由于垂直同步的机制,如果在一个 VSync 时间内,CPU 或者 GPU 没有完成内容提交,则那一帧就会被丢弃,等待下一次机会再显示,而这时显示

关于Vue的各个UI框架(elementUI、mint-ui、VUX)

elementUI 官网:http://element.eleme.io/ 使用步骤: 1.安装完vue-cli后,再安装 element-ui 命令行:npm i element-ui -D 相当于  npm install element-ui --save-dev //   i -> install       D  -> --save-dev       S -> --save   都是缩写 2.在main.js入口文件中引入它的js和css import ElementUI f

Vue.js之UI组件elementUI——MintUI

目的: 为了提高开发效率 功能 原则: 拿过来直接使用 vue-cli  ->  vue-loader bower 前端包管理器 jquery#1.11.1 自动解决依赖npm node包管理器 [email protected] 饿了么团队开源一个基于vue 组件库 elementUI: 如何使用 官网:http://element.eleme.io/使用:1. 安装 element-ui npm i element-ui -D npm install element-ui --save-de

第一百八十九节,jQueryUI,折叠菜单 UI

jQueryUI,折叠菜单 UI 学习要点: 1.使用 accordion 2.修改 accordion 样式 3.accordion()方法的属性 4.accordion()方法的事件 5.accordion 中使用 on 折叠菜单(accordion),和选项卡一样也是一种在同一个页面上切换不同内容的功能 UI.它和选项卡的使用几乎没有什么太大区别,只是显示的效果有所差异罢了. 一.使用 accordion 使用 accordion 比较简单,但需要按照指定的规范即可. HTML 部分 <d

学习ui设计是自学好?还是参加培训好?

ui设计自学好?还是参加培训好? 想学UI设计的人,或是想转行UI设计的人,大多都有一个困惑,要不要报班?去哪里报班?报什么班?学UI设计自学好还是报班培训好?相信这是想要进入UI设计行业领域的人们心中都有的疑问,那么该怎么办?下面小编谈谈ui设计自学好还是参加培训好的看法! 1.自学UI设计,首先是你要了解自己是有基础,还是零基础.有基础的话可以自学,不过要找到足够专业的ui学习平台,不然技术还没学会,反而把时间给耽误了,然后就是自己对学习的时间以及学习的实践操作做规划.只有持之以恒的不断学习

Winform软件,不要在线程里操作UI

对于Winform软件,不要在线程里操作UI,不要相信:StartForm.CheckForIllegalCrossThreadCalls = false; 于是,把所有的代码都改成主线程委托调用的方式 private delegate void SetTextHandle(string id, string value); private void ThreadSetText(string id, string value) { this.Controls.Find(id, true)[0].