用通知实现视图随着键盘的弹出而上移(UIkeyboardFrameEndUserInfoKey. UIKeyboardFramebeginUserInfoKey)
获取系统相册的照片。 注意在Info中加入Privacy - Photo Library Usage Description(访问系统相册)Privacy - Camera Usage Description(访问摄像头)
设置图片要遵从代理 (UIImagePickerControllerDelegate)和(UINavigationControllerDelegate) 因为UIImagePickerController视图中是有导航的,设置图片的时候要使用的方法需要监听navigation。 使用optional func imagePickerController(_ picker:UIImagePickerController, didFinishPickingMediaWithInfo info: [String: Any])设置图片
textField设置圆角self.borderStyle = .roundedRect
便利构造函数并不负责创建对象,在便利构造函数中可以对属性进行判断,判断是否符合创建条件,也可以为创建的对象赋值,但是由于便利构造函数不负责创建对象,所以在便利构造函数中必须要去手动调用构造函数self.init()去真正的创建对象,并且由于在便利构造函数中可以对构造的对象的属性进行判断,如果属性不能通过判断则不创建对象,所以便利构造函数可以返回一个nil所以构造函数名可以为 convenience init?是一个可以返回nil的构造函数。 并且在便利构造函数中可以对成功创建的对象进行属性的赋值,所以属性的赋值必须要在对象的创建之后,也就是self.init之后。 例
convenienceinit?( age : Int ,name :String){
if age >100{
return nil
}else{
self.init()
self.name = name
}
}
控制器之间的会调可以用闭包~~~!!!
TODO:
写一个私人通讯录,利用闭包完成会调
利用纯代码完成一个数据的添加(访问摄像头和图库利用静态表来完成)