美文网首页
iOS(swift)控件小笔记

iOS(swift)控件小笔记

作者: 我真不是他舅 | 来源:发表于2016-05-08 22:41 被阅读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.关于照片适配
照片适配.png
8.ios9之后,请求的网址不是https而是http的话,就会报错,这时,只需要在info.plist里加一个新的key即可。
https请求.png
9.动态适配字体

storyboard设置字体时,不设置字体大小,直接选择一种文字样式(例如Headline),那么文字会随着系统设置的字体大小而改变。

  • 第一步.设置属性


    屏幕快照 2016-05-08 22.46.31.png
  • 第二步. 设置iphone上的larger text


    屏幕快照 2016-05-08 22.50.23.png
屏幕快照 2016-05-08 22.50.34.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.首次使用【询问是否允许使用麦克风】
询问是否使用麦克风.png

只需要在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)

  }

}
索引.png
(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
}

相关文章

网友评论

      本文标题:iOS(swift)控件小笔记

      本文链接:https://www.haomeiwen.com/subject/cbosrttx.html