swift技术文章收藏借鉴iOS Developer首页投稿(暂停使用,暂停投稿)

Swift创建一个选择题库界面(解决TableViewCell中

2016-07-31  本文已影响526人  9ad91f89b29e

Swift创建一个选择题库界面(解决TableViewCell中Button的selected状态混乱和手势事件被截拦问题)-1

Swift创建一个选择题库界面(解决TableViewCell中Button的selected状态混乱和手势事件被截拦问题)-2

Swift创建一个选择题库界面(解决TableViewCell中Button的selected状态混乱和手势事件被截拦问题)-3

首先来看一下整个界面的最终效果图,共实现了以下几个功能:

下面开始一步一步来实现:
**第一步:创建一个Model,名为Exercise **
代码如下:

class Exercise: NSObject {
  var index:NSNumber!//题号             
  var title:String!//题干
  var type:String!//类型(单选或多选)
  var options:NSArray?//选项
  var answer:String?//答案
  init(dict:NSDictionary) {
    self.index = dict["index"] as! NSNumber
    self.title = dict["title"] as! String
    self.type = dict["type"] as! String
    self.options = dict["options"] as? NSArray
    self.answer = dict["answer"] as? String
  }
}```

我们把题库存储在一个plist文件中,名为testLibraryList.plist,层次如下:根选项(root)-dictionary,单选或多选-array,某一题(item)-dictionary。这样如果要创建一个Exercise对象,就可以用init(dict:某一题-dictionary)。plist如下图:
![](http:https://img.haomeiwen.com/i1804014/9ecb3592f3a7b7ba.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

**第二步:创建Storyboard,在Main.storyboard中拖入TableViewController **   
布局如下:首先拖入一个View作为背景,然后就是题目(UILabel),每一个选项都由一个UIButton和一个UILabel,之所以这样是如果只有一个button来做选项的话,如果选项过长,就会显示不全,如果只用一个label,就无法看到是哪个选项被选中了。要自适应tableView的话就要用自适应布局添加约束(觉得怎么好看怎么弄,我的是每一个选项的button和label都是centerY对齐)。

布局的时候需要注意以下几点:1.每个button的selected和default的图片都要设置;2.所有的Label行数都为0;3.题目label的颜色为黑色,大小为17;4.选项label的颜色为灰色,大小为17;5.背景View的背景颜色为轻灰色。
![](http:https://img.haomeiwen.com/i1804014/8ea069529bb2e461.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

选中cell,并将indentifier改为XXWDCell
![](http:https://img.haomeiwen.com/i1804014/f9d52aa26e8e2e76.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

为VC添加NavigationController,选中VC,在菜单栏中Editor->Embed in->NavigationController
待续.....
上一篇下一篇

猜你喜欢

热点阅读