gpt4 book ai didi

ios - 快速隐藏/显示基于文本的文本字段和按钮

转载 作者:行者123 更新时间:2023-11-30 13:48:35 25 4
gpt4 key购买 nike

一直在处理这个问题,正在处理允许用户输入分机号 myExtension 和说明 myText 的场景,然后单击拍照( 拍照)。接下来,相机打开,用户拍照,将图像加载到图像查看器中,然后有一个保存按钮 saveImage,用于将图像上传到 Web 服务器。这一切都很好......但为了避免命名不当的图像的麻烦,我想禁用所有字段和按钮,直到输入文本。

例如:扩展解锁描述,描述解锁拍照按钮,并且在 ImageView 不为空之前不会激活保存。也许会隐藏 ImageView ,直到拍摄照片为止。

我需要用户拍摄多张照片,所以我希望文本保留在字段中,但在拍摄照片后,清晰的 ImageView 并隐藏,允许他们再次点击拍照。

注意:我将日期时间附加到文件名中,这样就不会覆盖文件。

附件是 Controller 代码。任何帮助表示赞赏。我尝试了一些选项,但似乎无法使其正常工作。

import UIKit

class PhotoViewController: UIViewController,UIImagePickerControllerDelegate, UINavigationControllerDelegate {


@IBOutlet weak var myExtension: UITextField!
@IBOutlet weak var myActivityIndicator: UIActivityIndicatorView!
@IBOutlet weak var myText: UITextField!
@IBOutlet weak var myImageView: UIImageView!
@IBOutlet weak var takePhoto: UIButton!
@IBOutlet weak var saveImage: UIButton!

@IBAction func uploadButtonTapped(sender: AnyObject) {
myImageUploadRequest()
}

@IBAction func selectPhotoButtonTapped(sender: AnyObject) {
let myPickerController = UIImagePickerController()
myPickerController.delegate = self;
myPickerController.sourceType = UIImagePickerControllerSourceType.Camera

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

func imagePickerController(picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : AnyObject])
{
myImageView.image = info[UIImagePickerControllerOriginalImage] as? UIImage
self.dismissViewControllerAnimated(true, completion: nil)
}

override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
//myImageUploadRequest()
}

func myImageUploadRequest()
{
let myUrl = NSURL(string: "https://website.com/api/upload1.php");
let request = NSMutableURLRequest(URL:myUrl!);
request.HTTPMethod = "POST";

let param = [
"myText" : myText.text!,
"myExtension" : myExtension.text!
]

let boundary = generateBoundaryString()
request.setValue("multipart/form-data; boundary=\(boundary)", forHTTPHeaderField: "Content-Type")

let imageData = UIImageJPEGRepresentation(myImageView.image!, 1)
if(imageData==nil) { return; }

request.HTTPBody = createBodyWithParameters(param, filePathKey: "file", imageDataKey: imageData!, boundary: boundary)

myActivityIndicator.startAnimating();

let task = NSURLSession.sharedSession().dataTaskWithRequest(request) {
data, response, error in

if error != nil {
print("error=\(error)")
return
}

// You can print out response object
print("******* response = \(response)")

// Print out reponse body
let responseString = NSString(data: data!, encoding: NSUTF8StringEncoding)
print("****** response data = \(responseString!)")

//Update
// var err: NSError?
// var json = NSJSONSerialization.JSONObjectWithData(data, options: .MutableContainers, error: &err) as? NSDictionary

do {
if let jsonResult = try NSJSONSerialization.JSONObjectWithData(data!, options: []) as? NSDictionary {
print(jsonResult) }
} catch let error as NSError {
print(error.localizedDescription)
}

dispatch_async(dispatch_get_main_queue(),{
self.myActivityIndicator.stopAnimating()
self.myImageView.image = nil;
});
}

task.resume()
}


func createBodyWithParameters(parameters: [String: String]?, filePathKey: String?, imageDataKey: NSData, boundary: String) -> NSData {
let body = NSMutableData();

if parameters != nil {
for (key, value) in parameters! {
body.appendString("--\(boundary)\r\n")
body.appendString("Content-Disposition: form-data; name=\"\(key)\"\r\n\r\n")
body.appendString("\(value)\r\n")
}
}


var now: String {
let dateFormatter = NSDateFormatter()
dateFormatter.dateFormat = "MMDDyyyy"
return dateFormatter.stringFromDate(NSDate())
}

var time: String {
let dateFormatter = NSDateFormatter()
dateFormatter.dateFormat = "HHmmss"
return dateFormatter.stringFromDate(NSDate())
}

let filename = (myText.text! + "_" + now + time + ".jpg")

let mimetype = "image/jpg"

body.appendString("--\(boundary)\r\n")
body.appendString("Content-Disposition: form-data; name=\"\(filePathKey!)\"; filename=\"\(filename)\"\r\n")
body.appendString("Content-Type: \(mimetype)\r\n\r\n")
body.appendData(imageDataKey)
body.appendString("\r\n")



body.appendString("--\(boundary)--\r\n")

return body
}



func generateBoundaryString() -> String {
return "Boundary-\(NSUUID().UUIDString)"
}



}


extension NSMutableData {

func appendString(string: String) {
let data = string.dataUsingEncoding(NSUTF8StringEncoding, allowLossyConversion: true)
appendData(data!)

}

}

最佳答案

经过多次尝试和错误,我成功了。

基本上我创建了一个函数来完成所有检查。

谢谢...

关于ios - 快速隐藏/显示基于文本的文本字段和按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34599954/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com