使用UIImage配置文件图片设置在SWIFT中创建注册查看页面,使用“下一步”作为返回键,UIImage设置不起作用
我正在构建一个应用程序,我的重点是用户友好 在SignUpViewController中,我有一个UIImage类型的profilePic、四个用于记录用户数据的标准UITextField,以及另外两个用于激活UIDatePicker和UIPicker的UITextField 我遇到了一些问题,例如 1) UIImage不会剪裁到边界以使其具有圆形外观 2) 当我使用UIImage从我的图库中获取图像时,它没有给我缩放图像大小的选项,而是给我一个静态图像选择 3) 我的UITextFields不响应我使用的下一个设置。同样,下一个设置已经在我的LogInViewController中实现,并且工作得非常好。但是为什么它在SignUpViewController中不起作用呢 提前向你表示衷心的感谢使用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不
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!)