iOS(swift)控件小笔记
2016-05-08 本文已影响86人
我真不是他舅
1.label自适应内容:
storyboard中,把里面的lines改成“0”,然后line breaks 选择“character wrap”或者“word wrap”都行。
- a. UILineBreakModeWordWrap: 在一个单词之后截掉
- b. UILineBreakModeCharacterWrap: 在一个字符之后截掉
- c. UILineBreakModeClip: 碰到container 边界就将内容截掉,不管最后一个单词写完与否。
- d.UILineBreakModeHeadTruncation: 内容的开头用省略号代替,不截后
- e. UILineBreakModeTailTruncation: 内容的尾部用省略号代替,不截前
- f. UILineBreakModeMiddleTruncation: 部分中间内容用省略号代替。
2.NSManagedObject 类几乎可以替代任何类
3.viewWillAppear 方法中初始化耗时的操作。
4.用add target添加action
定义一个按钮操作的 function,例如叫“share”
func share() {
}
然后在需要按钮发生action的地方,添加一句:
button.addTarget(self, action: "share", forControlEvents: UIControlEvents.TouchUpInside)
即可完成对按钮的添加操作。
5.text filed编辑完后收起键盘
func textFieldShouldReturn(textField: UITextField) -> Bool {
textField.resignFirstResponder()
return true
}
override func touchesBegan(touches: Set, withEvent event: UIEvent?) {
//let touch = touches.first
//let location = touch?.locationInView(self.view) :注释掉的这两句可以知道点击了屏幕哪里。
textField.resignFirstResponder()
}
6.改变keyboard的样式可以用keyboard type:
textField.keyboardType=.DecimalPad// 只有数字的键盘
7.关于照片适配

8.ios9之后,请求的网址不是https而是http的话,就会报错,这时,只需要在info.plist里加一个新的key即可。

9.动态适配字体
storyboard设置字体时,不设置字体大小,直接选择一种文字样式(例如Headline),那么文字会随着系统设置的字体大小而改变。
-
第一步.设置属性
屏幕快照 2016-05-08 22.46.31.png
-
第二步. 设置iphone上的larger text
屏幕快照 2016-05-08 22.50.23.png

10.模糊效果
override func viewDidLoad() {
super.viewDidLoad()
let blurEffectView = UIVisualEffectView(effect:UIBlurEffect(style:.Light))
blurEffectView.frame = view.frame(铺满整个view)
imageView.addSubview(blurEffectView)//imageview有预设的图片当背景,所以模糊效果相当于叠加了一层模糊的子视图
}
11. 视图加动画效果(从0到原始大小)
- 第一步:每个视图都有transform属性:
override func viewDidLoad() {
super.viewDidLoad()
animateView.transform = CGAffineTransformMakeScale(0,0) //一开始不可见
//也可以:let scale = CGAffineTransformMakeScale(0,0)
//CGAffineTransformMakeTranslation(x,y) x:视图初始位置;y视图最终位置
//let translate = CGAffineTransformMakeTranslate(0,500)
}
//animateView.transform = translate 采用移动的动画
//animateView.transform = CGAffineTransformConcat(scale,translate) 将动画组合起来
- 第二步:设置动画启动时机及时长(在 viewDidAppear)
原始大小:CGAffineTransformIdentity
override func viewDidAppear(animated: Bool) {
//普通效果
// UIView.animateWithDuration(0.3) { () -> Void in self.animateView.transform = CGAffineTransformIdentity }
//spring效果: Damping(结束前的震荡摆动效果)、velocity(初始速度)、
UIView.animateWithDuration(0.5, delay: 0.0, usingSpringWithDamping: 0.7, initialSpringVelocity: 0.5, options: [], animations: {
self.animateView.transform = CGAffineTransformIdentity
}, completion: nil)
}
12. case语句
两种写法等价
case .Book(title: let aTitle, author: let anAuthor, year: let aYear): …
case let .Book(title: aTitle, author: anAuthor, year: aYear): …
13.首次使用【询问是否允许使用麦克风】

只需要在info.plist上加一个key-value即可。
tableview 部分
(1).定制tableview的索引
- a. 改变tableview 右侧索引的颜色,在view did load ()里一句话:
self.view.tintColor = UIColor.brownColor()
- b.
func tableView(tableView: UITableView, willDisplayHeaderView view: UIView, forSection section: Int) {
//改变section上索引的字体大小
(view as! UITableViewHeaderFooterView).textLabel?.font = UIFont.systemFontOfSize(14)
//改变第一个“最近浏览”颜色
if section == 0 {
(view as! UITableViewHeaderFooterView).textLabel?.textColor = UIColor(red: 234/255, green: 123/255, blue: 116/255, alpha: 1)
}
else {
//改变下面的索引字体的颜色
(view as! UITableViewHeaderFooterView).textLabel?.textColor = UIColor(white: 0, alpha: 0.5)
}
}

(2).去掉tableview上方空白的一段
override func viewDidLoad() {
super.viewDidLoad()
self.automaticallyAdjustsScrollViewInsets = false
}
(3).去掉tableview下方多余的分割线
override func viewDidLoad() {
super.viewDidLoad()
tableView.tableFooterView = UIView(frame: CGRectZero)
}
(4). 改变分割线颜色
override func viewDidLoad() {
super.viewDidLoad()
tableView.separatorColor = UIColor(white:0.8, alpha:1)
}
(5) . cell自适应高度
override func viewDidLoad() {
super.viewDidLoad()
tableView.estimatedRowHeight = 95.0 //随便预估的高度
tableView.rowHeight = UITableViewAutomaticDimension
}