Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用UIImage配置文件图片设置在SWIFT中创建注册查看页面,使用“下一步”作为返回键,UIImage设置不起作用_Swift_Uiimageview_Uitextfield_Uipickerview_Uidatepicker - Fatal编程技术网

使用UIImage配置文件图片设置在SWIFT中创建注册查看页面,使用“下一步”作为返回键,UIImage设置不起作用

使用UIImage配置文件图片设置在SWIFT中创建注册查看页面,使用“下一步”作为返回键,UIImage设置不起作用,swift,uiimageview,uitextfield,uipickerview,uidatepicker,Swift,Uiimageview,Uitextfield,Uipickerview,Uidatepicker,我正在构建一个应用程序,我的重点是用户友好 在SignUpViewController中,我有一个UIImage类型的profilePic、四个用于记录用户数据的标准UITextField,以及另外两个用于激活UIDatePicker和UIPicker的UITextField 我遇到了一些问题,例如 1) UIImage不会剪裁到边界以使其具有圆形外观 2) 当我使用UIImage从我的图库中获取图像时,它没有给我缩放图像大小的选项,而是给我一个静态图像选择 3) 我的UITextFields不

我正在构建一个应用程序,我的重点是用户友好

在SignUpViewController中,我有一个UIImage类型的profilePic、四个用于记录用户数据的标准UITextField,以及另外两个用于激活UIDatePicker和UIPicker的UITextField

我遇到了一些问题,例如

1) UIImage不会剪裁到边界以使其具有圆形外观 2) 当我使用UIImage从我的图库中获取图像时,它没有给我缩放图像大小的选项,而是给我一个静态图像选择

3) 我的UITextFields不响应我使用的下一个设置。同样,下一个设置已经在我的LogInViewController中实现,并且工作得非常好。但是为什么它在SignUpViewController中不起作用呢

提前向你表示衷心的感谢

 import UIKit
 import Parse


 class SignUpViewController: UIViewController, UITextFieldDelegate,      UIPickerViewDataSource, UIPickerViewDelegate, UIImagePickerControllerDelegate, UINavigationControllerDelegate {



@IBOutlet weak var profilePic: UIImageView!
@IBOutlet weak var firstName: UITextField!
@IBOutlet weak var lastName: UITextField!
@IBOutlet weak var signUpEmail: UITextField!
@IBOutlet weak var signUpPassword: UITextField!



@IBOutlet weak var dateTextField: UITextField!
@IBOutlet weak var genderTextField: UITextField!


var datePicker:UIDatePicker!
var genderPicker:UIPickerView!

var genderSelect = ["Male", "Female"]


override func viewDidLoad() {
    super.viewDidLoad()


    // PROFILE PICTURE

    let tapGesture = UITapGestureRecognizer(target: self, action: "imageTapped:")

    profilePic.addGestureRecognizer(tapGesture)
    profilePic.userInteractionEnabled = true

    profilePic.frame = CGRect(x: 10, y: 170, width: 80, height: 80)

    profilePic.layer.cornerRadius = profilePic.frame.size.width / 2
    profilePic.clipsToBounds = true



    // UI DATE PICKER SETUP

    var customView:UIView = UIView(frame: CGRectMake(0, 100, 320, 160))
    customView.backgroundColor = UIColor.clearColor()

    datePicker = UIDatePicker(frame: CGRectMake(0, 0, 320, 160))
    datePicker.datePickerMode = UIDatePickerMode.Date
    datePicker.maximumDate = NSCalendar.currentCalendar().dateByAddingUnit(.CalendarUnitYear, value: -16, toDate: NSDate(), options: nil)


    customView.addSubview(datePicker)
    dateTextField.inputView = customView

    var dateToolBar = UIToolbar()
    dateToolBar.barStyle = UIBarStyle.Default
    dateToolBar.translucent = true
    dateToolBar.tintColor = UIColor(red: 246/255, green: 141/255, blue: 17/255, alpha: 1)
    dateToolBar.sizeToFit()
    dateTextField.inputAccessoryView = dateToolBar

    var doneButton = UIBarButtonItem(title: "Done", style: UIBarButtonItemStyle.Plain, target: self, action: "datePickerSelected")
    var spaceButton = UIBarButtonItem(barButtonSystemItem: UIBarButtonSystemItem.FlexibleSpace, target: nil, action: nil)
    var cancelButton = UIBarButtonItem(title: "Cancel", style: UIBarButtonItemStyle.Plain, target: self, action: "cancelPicker")

    dateToolBar.setItems([cancelButton, spaceButton, doneButton], animated: true)
    dateToolBar.userInteractionEnabled = true



    // UI GENDER PICKER VIEW

    genderPicker = UIPickerView(frame: CGRectMake(0, 0, 320, 160))
    genderPicker.showsSelectionIndicator = true

    var customGenderView:UIView = UIView(frame: CGRectMake(0, 100, 320, 160))
    customGenderView.backgroundColor = UIColor.clearColor()


    customGenderView.addSubview(genderPicker)
    genderTextField.inputView = customGenderView


    var toolBar = UIToolbar()
    toolBar.barStyle = UIBarStyle.Default
    toolBar.translucent = true
    toolBar.tintColor = UIColor(red: 246/255, green: 141/255, blue: 17/255, alpha: 1)
    toolBar.sizeToFit()

    genderPicker.delegate = self
    genderPicker.dataSource = self

    var doneBtn = UIBarButtonItem(title: "Done", style: UIBarButtonItemStyle.Plain, target: self, action: "donePicker")
    var spaceBtn = UIBarButtonItem(barButtonSystemItem: UIBarButtonSystemItem.FlexibleSpace, target: nil, action: nil)
    var cancelBtn = UIBarButtonItem(title: "Cancel", style: UIBarButtonItemStyle.Plain, target: self, action: "cancelPicker")

    toolBar.setItems([cancelBtn, spaceBtn, doneBtn], animated: true)
    toolBar.userInteractionEnabled = true

    genderTextField.inputView = genderPicker
    genderTextField.inputAccessoryView = toolBar




}



func textFieldShouldReturn(textField: UITextField) -> Bool {
    if let nextField = textField.nextField {
        nextField.becomeFirstResponder()
    }

    return true
}




  // UIIMAGE TO FUNCTION AS BUTTON WHEN TAPPED

func imageTapped(gesture:UIGestureRecognizer) {
    if let profilePic = gesture.view as? UIImageView {
        showActionSheet()
    }
}

func camera() {
    var myPickerController = UIImagePickerController()
    myPickerController.delegate = self
    myPickerController.sourceType = UIImagePickerControllerSourceType.Camera
    //myPickerController.allowsEditing = true

    self.presentViewController(myPickerController, animated: true, completion: nil)

}

func photoLibrary()
{

    var myPickerController = UIImagePickerController()
    myPickerController.delegate = self
    myPickerController.sourceType = UIImagePickerControllerSourceType.PhotoLibrary
    myPickerController.allowsEditing = true
    //myPickerController.setEditing(true, animated: true)


    self.presentViewController(myPickerController, animated: true, completion: nil)

}

func showActionSheet() {
    let actionSheet = UIAlertController(title: nil, message: nil, preferredStyle: UIAlertControllerStyle.ActionSheet)

    actionSheet.addAction(UIAlertAction(title: "Camera", style: UIAlertActionStyle.Default, handler: { (alert:UIAlertAction!) -> Void in
        self.camera()
    }))

    actionSheet.addAction(UIAlertAction(title: "Gallery", style: UIAlertActionStyle.Default, handler: { (alert:UIAlertAction!) -> Void in
        self.photoLibrary()
    }))

    actionSheet.addAction(UIAlertAction(title: "Cancel", style: UIAlertActionStyle.Cancel, handler: nil))

    self.presentViewController(actionSheet, animated: true, completion: nil)

}

func imagePickerController(picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [NSObject: AnyObject]) {

    profilePic.image = info[UIImagePickerControllerOriginalImage] as? UIImage

    self.dismissViewControllerAnimated(true, completion: nil)

}


// DATE FORMATTING AND CHOOSING

func datePickerSelected() {
    dateTextField.text = datePicker.date.description
    dateTextField.text = self.dateformatterDate(datePicker.date) as String
    dateTextField.resignFirstResponder()
}

func dateformatterDate(date: NSDate) ->NSString {
    var dateFormatter: NSDateFormatter = NSDateFormatter()
    dateFormatter.dateFormat = "dd/MM/yyyy"
    return dateFormatter.stringFromDate(date)
}



// GENDER SELECT

func numberOfComponentsInPickerView(pickerView: UIPickerView) -> Int {
    return 1
}

func pickerView(pickerView:UIPickerView, numberOfRowsInComponent component: Int) ->Int {
    return genderSelect.count
}

func pickerView(pickerView:UIPickerView, titleForRow row:Int, forComponent component:Int) -> String! {
    return genderSelect[row]
}

func pickerView(pickerView:UIPickerView, didSelectRow row:Int, inComponent component:Int) {
    genderTextField.text = genderSelect[row]
}

func textFieldShouldBeginEditing(textField: UITextField) -> Bool {
    return false
}

func genderPickerSelected() {
    genderTextField.text = genderPicker.description
}




override func didReceiveMemoryWarning() {
    super.didReceiveMemoryWarning()
    // Dispose of any resources that can be recreated.
}



override func touchesBegan(touches: Set<NSObject>, withEvent event: UIEvent) {
    self.view.endEditing(true)
}


@IBAction func signUpBtn(sender: AnyObject) {
}
导入UIKit
导入解析
类SignUpViewController:UIViewController、UIExtFieldDelegate、UIPickerViewDataSource、UIPickerViewDelegate、UIImagePickerController、UINavigationControllerDelegate{
@IBOutlet弱var配置文件pic:UIImageView!
@IBVAR名字:UITextField!
@IBMOutlet弱变量lastName:UITextField!
@IBV弱var注册电子邮件:UITextField!
@IBOUTLE弱var signUpPassword:UITextField!
@IBOutlet弱var dateTextField:UITextField!
@IBEXTEXTFIELD:UITextField!
var datePicker:UIDatePicker!
var genderPicker:UIPickerView!
变量genderSelect=[“男性”、“女性”]
重写func viewDidLoad(){
super.viewDidLoad()
//侧面图
让Tap手势=UITapGestureRecognitizer(目标:自我,操作:“imageTapped:”)
profilePic.AddGestureRecognitor(点击手势)
profilePic.userInteractionEnabled=true
profilePic.frame=CGRect(x:10,y:170,宽度:80,高度:80)
profilePic.layer.cornerRadius=profilePic.frame.size.width/2
profilePic.clipstobunds=true
//用户界面日期选择器设置
var customView:UIView=UIView(帧:CGRectMake(010032160))
customView.backgroundColor=UIColor.clearColor()
datePicker=UIDatePicker(帧:CGRectMake(0,032160))
datePicker.datePickerMode=UIDatePickerMode.Date
datePicker.maximumDate=NSCalendar.currentCalendar().dateByAddingUnit(.CalendarUnitYear,值:-16,toDate:NSDate(),选项:nil)
customView.addSubview(日期选择器)
dateTextField.inputView=customView
var dateToolBar=UIToolbar()
dateToolBar.barStyle=UIBarStyle.Default
dateToolBar.transparent=true
dateToolBar.tintColor=UIColor(红色:246/255,绿色:141/255,蓝色:17/255,alpha:1)
dateToolBar.sizeToFit()
dateTextField.inputAccessoryView=dateToolBar
var doneButton=UIBarButtonItem(标题:“完成”,样式:UIBarButtonItemStyle.Plain,目标:self,操作:“datePickerSelected”)
var spaceButton=UIBarButtonItem(barButtonSystemItem:UIBarButtonSystemItem.FlexibleSpace,目标:nil,操作:nil)
var cancelButton=UIBarButtonim(标题:“取消”,样式:UIBarButtonimStyle.Plain,目标:self,操作:“cancelPicker”)
dateToolBar.setItems([cancelButton,spaceButton,doneButton],动画:true)
dateToolBar.userInteractionEnabled=true
//UI性别选择器视图
genderPicker=UIPickerView(框架:CGRectMake(0,0320160))
genderPicker.showsSelectionIndicator=true
var customGenderView:UIView=UIView(帧:CGRectMake(011001320160))
customGenderView.backgroundColor=UIColor.clearColor()
customGenderView.addSubview(genderPicker)
genderTextField.inputView=customGenderView
var toolBar=UIToolbar()
toolBar.barStyle=UIBarStyle.Default
toolBar.transparent=true
toolBar.tintColor=UIColor(红色:246/255,绿色:141/255,蓝色:17/255,alpha:1)
toolBar.sizeToFit()
genderPicker.delegate=self
genderPicker.dataSource=self
var doneBtn=uibarbuttonite(标题:“完成”,风格:uibarbuttonimstyle.Plain,目标:自我,行动:“donePicker”)
var spaceBtn=UIBarButtonItem(barButtonSystemItem:UIBarButtonSystemItem.FlexibleSpace,目标:nil,操作:nil)
var cancelBtn=UIBarButtonItem(标题:“取消”,样式:UIBarButtonItemStyle.Plain,目标:self,操作:“取消选择器”)
toolBar.setItems([cancelBtn,spaceBtn,doneBtn],动画:true)
toolBar.userInteractionEnabled=true
genderTextField.inputView=genderPicker
genderTextField.inputAccessoryView=工具栏
}
func textField应返回(textField:UITextField)->Bool{
如果让nextField=textField.nextField{
nextField.becomeFirstResponder()
}
返回真值
}
//UIIMAGE在点击时用作按钮
func imageTapped(手势:UIGestureRecognitor){
如果让profilePic=signature.view为UIImageView{
showActionSheet()
}
}
func摄影机(){
var myPickerController=UIImagePickerController()
myPickerController.delegate=self
myPickerController.sourceType=UIImagePickerController源类型.Camera
//myPickerController.allowsEditing=true
self.presentViewController(myPickerController,动画:true,完成:nil)
}
func photoLibrary()
{
var myPickerController=UIImagePickerController()
myPickerController.delegate=self
myPickerController.sourceType=UIImagePickerController源类型.PhotoLibrary
myPickerController.allowsEditing=true
//myPickerController.setEditing(真,动画:真)
self.presentViewController(myPickerController,动画:true,完成:nil)
}
func showActionSheet(){
让actionSheet=UIAlertController(标题:nil,消息:nil,首选样式:UIAlertControllerStyle.actionSheet)
actionSheet.addAction(UIAlertAction(标题:“摄影机”,样式:UIAlertActionStyle.Default,处理程序:{(警报:UIAlertAction!)->中的Void
self.camera()
}))
actionSheet.addAction(UIAlertAction(标题:“Gallery”,样式:UIAlertActionStyle.Default,处理程序:{(警报:UIAlertAction!)