- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个基本设置,当文本字段出现时,datePicker 就会出现。我在表中有多个元素应该显示 datePicker。我知道代码有效,因为我创建了一个完美运行的 View 。我也是 swift 的新手。我相信它可能会出现在我的表格 View 后面。我将如何测试/修复它?这是我的 datePicker 的编码位置:
import UIKit
class ViewController: UIViewController, UITableViewDelegate, UITableViewDataSource, UIPickerViewDelegate, UIPickerViewDataSource, UITextFieldDelegate {
@IBOutlet weak var tableView: UITableView!
@IBOutlet var coursePicker: UIPickerView!
@IBOutlet var courseTextfield: UITextField!
@IBOutlet var playerPicker: UIPickerView!
@IBOutlet var playerTextfield: UITextField!
@IBOutlet var timePicker: UIPickerView!
@IBOutlet var timeTextfield: UITextField!
@IBOutlet weak var dateTextfield: UITextField!
@IBAction func unwindToVC(segue: UIStoryboardSegue) {
if(segue.sourceViewController.isKindOfClass(ConViewController)) {
let viewCon:ConViewController = (segue.sourceViewController as? ConViewController)!
lblOneData[tblIndex] = viewCon.pOneTextfield.text!
lblTwoData[tblIndex] = viewCon.pTwoTextfield.text!
lblThreeData[tblIndex] = viewCon.pThreeTextfield.text!
lblFourData[tblIndex] = viewCon.pFourTextfield.text!
tableView.reloadData()
}
}
var tableData: [String] = ["8:00 am", "8:10 am", "8:20 am", "8:30 am", "8:40 am", "8:50 am", "9:00 am", "9:10 am", "9:20 am", "9:30 am", "9:40 am", "9:50 am", "10:00 am", "10:10 am", "10:20 am", "10:30 am", "10:40 am", "10:50 am", "11:00 am", "11:10 am", "11:20 am", "11:30 am", "11:40 am", "11:50 am", "12:00 pm", "12:10 pm", "12:20 pm", "12:30 pm", "12:40 pm", "12:50 pm", "1:00 pm", "1:10 pm", "1:20 pm", "1:30 pm", "1:40 pm", "1:50 pm", "2:00 pm", "2:10 pm", "2:20 pm", "2:30 pm", "2:40 pm", "2:50 pm", "3:00 pm", "3:10 pm", "3:20 pm", "3:30 pm", "3:40 pm", "3:50 pm", "4:00 pm", "4:10 pm", "4:20 pm", "4:30 pm", "4:40 pm", "4:50 pm", "5:00 pm"]
var courseData = ["Norman Course", "Riding Golf", "Dmob Course", "Brambleton", "Leesburg Clubhouse"]
var playersData = ["View All", "1 Available", "2 Available", "3 Available", "4 Available"]
var timeData = ["All Day", "Morning", "Afternoon"]
var lblOneData = ["Available","Available","Available","Available", "Available","Available","Available","Available", "Available","Available","Available","Available", "Available","Available","Available","Available", "Available","Available","Available","Available", "Available","Available","Available","Available", "Available","Available","Available","Available", "Available","Available","Available","Available", "Available","Available","Available","Available", "Available","Available","Available","Available", "Available","Available","Available","Available", "Available","Available","Available","Available", "Available","Available","Available","Available", "Available","Available","Available"]
var lblTwoData = ["Available","Available","Available","Available", "Available","Available","Available","Available", "Available","Available","Available","Available", "Available","Available","Available","Available", "Available","Available","Available","Available", "Available","Available","Available","Available", "Available","Available","Available","Available", "Available","Available","Available","Available", "Available","Available","Available","Available", "Available","Available","Available","Available", "Available","Available","Available","Available", "Available","Available","Available","Available", "Available","Available","Available","Available", "Available","Available","Available"]
var lblThreeData = ["Available","Available","Available","Available", "Available","Available","Available","Available", "Available","Available","Available","Available", "Available","Available","Available","Available", "Available","Available","Available","Available", "Available","Available","Available","Available", "Available","Available","Available","Available", "Available","Available","Available","Available", "Available","Available","Available","Available", "Available","Available","Available","Available", "Available","Available","Available","Available", "Available","Available","Available","Available", "Available","Available","Available","Available", "Available","Available","Available"]
var lblFourData = ["Available","Available","Available","Available", "Available","Available","Available","Available", "Available","Available","Available","Available", "Available","Available","Available","Available", "Available","Available","Available","Available", "Available","Available","Available","Available", "Available","Available","Available","Available", "Available","Available","Available","Available", "Available","Available","Available","Available", "Available","Available","Available","Available", "Available","Available","Available","Available", "Available","Available","Available","Available", "Available","Available","Available","Available", "Available","Available","Available"]
let conSegueIdentifier = "ShowConSegue"
var timeToPass:String!
var availableIndexes = [Int]()
var tblIndex:Int!
var datePicker = UIDatePicker()
override func viewDidLoad() {
super.viewDidLoad()
let nib = UINib(nibName: "vwTblCell", bundle: nil)
tableView.registerNib(nib, forCellReuseIdentifier: "cell")
coursePicker.hidden = true
self.courseTextfield.delegate = self
playerPicker.hidden = true;
self.playerTextfield.delegate = self
timePicker.hidden = true;
self.timeTextfield.delegate = self
setupDatePicker()
}
func setupDatePicker() {
dateTextfield.text = "Date"
dateTextfield.textAlignment = .Center
dateTextfield.tintColor = UIColor.clearColor()
datePicker.datePickerMode = .Date
let toolBar = UIToolbar()
toolBar.barStyle = .Default
toolBar.translucent = true
toolBar.tintColor = UIColor(red: 92/255, green: 216/255, blue: 255/255, alpha: 1)
toolBar.sizeToFit()
let doneButton = UIBarButtonItem(title: "Done", style: .Plain, target: self, action: "doneClick")
let spaceButton = UIBarButtonItem(barButtonSystemItem: .FlexibleSpace, target: nil, action: nil)
let cancelButton = UIBarButtonItem(title: "Cancel", style: .Plain, target: self, action: "cancelClick")
toolBar.setItems([cancelButton, spaceButton, doneButton], animated: false)
toolBar.userInteractionEnabled = true
// Adds the toolbar to the view
dateTextfield.inputView = datePicker
dateTextfield.inputAccessoryView = toolBar
}
func doneClick() {
let dateFormatter = NSDateFormatter()
dateFormatter.dateStyle = .ShortStyle
dateTextfield.text = dateFormatter.stringFromDate(datePicker.date)
dateTextfield.resignFirstResponder()
}
func cancelClick() {
dateTextfield.resignFirstResponder()
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
//tableview
func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
var numRows = tableData.count
if(timeTextfield.text == timeData[1]) {
numRows = 25
}
else if(timeTextfield.text == timeData[2]) {
numRows = 30
}
return numRows
}
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let cell:TblCell = self.tableView.dequeueReusableCellWithIdentifier("cell", forIndexPath: indexPath) as! TblCell
var lblOneBool = true
var lblTwoBool = true
var lblThreeBool = true
var lblFourBool = true
if(timeTextfield.text == timeData[2]) {
cell.hidden = false
cell.lblTime.text = tableData[indexPath.row + 25]
cell.lblOne.text = lblOneData[indexPath.row + 25]
cell.lblTwo.text = lblTwoData[indexPath.row + 25]
cell.lblThree.text = lblThreeData[indexPath.row + 25]
cell.lblFour.text = lblFourData[indexPath.row + 25]
}
else {
cell.lblTime.text = tableData[indexPath.row]
cell.lblOne.text = lblOneData[indexPath.row]
cell.lblTwo.text = lblTwoData[indexPath.row]
cell.lblThree.text = lblThreeData[indexPath.row]
cell.lblFour.text = lblFourData[indexPath.row]
}
if(cell.lblOne.text != "Available") {
lblOneBool = false
}
if(cell.lblTwo.text != "Available") {
lblTwoBool = false
}
if(cell.lblThree.text != "Available") {
lblThreeBool = false
}
if(cell.lblFour.text != "Available") {
lblFourBool = false
}
if(playerTextfield.text == playersData[1]) {
if(lblOneBool || lblTwoBool || lblThreeBool || lblFourBool) {
cell.hidden = false
}
else {
cell.hidden = true
}
}
else if(playerTextfield.text == playersData[2]) {
if((lblOneBool && lblTwoBool) || (lblOneBool && lblThreeBool) || (lblOneBool && lblFourBool) || (lblTwoBool && lblThreeBool) || (lblTwoBool && lblFourBool) || (lblThreeBool && lblFourBool)) {
cell.hidden = false
}
else {
cell.hidden = true
}
}
else if(playerTextfield.text == playersData[3]) {
if((lblOneBool && lblTwoBool && lblThreeBool) || (lblOneBool && lblTwoBool && lblFourBool) || (lblOneBool && lblThreeBool && lblFourBool) || (lblTwoBool && lblThreeBool && lblFourBool)) {
cell.hidden = false
}
else {
cell.hidden = true
}
}
else if(playerTextfield.text == playersData[4]) {
if(lblOneBool && lblTwoBool && lblThreeBool && lblFourBool) {
cell.hidden = false
}
else {
cell.hidden = true
}
}
return cell
}
func tableView(tableView: UITableView, heightForRowAtIndexPath indexPath: NSIndexPath) -> CGFloat {
return 120
}
func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {
let row = indexPath.row
performSegueWithIdentifier(conSegueIdentifier, sender: indexPath)
print(tableData[row])
if(timeTextfield.text == timeData[2]) {
tblIndex = row + 25
}
else {
tblIndex = row
}
}
//end of tableview
//pickerViews
func numberOfComponentsInPickerView(pickerView: UIPickerView) -> Int {
return 1
}
func pickerView(pickerView: UIPickerView, numberOfRowsInComponent component: Int) -> Int {
if(pickerView == coursePicker) {
return courseData.count
}
else if(pickerView == playerPicker) {
return playersData.count
}
else if(pickerView == timePicker) {
return timeData.count
}
return 0
}
func pickerView(pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String? {
if(pickerView == coursePicker) {
return courseData[row]
}
else if(pickerView == playerPicker) {
return playersData[row]
}
else if(pickerView == timePicker) {
return timeData[row]
}
return courseData[row]
}
func pickerView(pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int) {
if(pickerView == coursePicker) {
courseTextfield.text = courseData[row]
coursePicker.hidden = true
}
else if(pickerView == playerPicker) {
playerTextfield.text = playersData[row]
playerPicker.hidden = true
tableView.reloadData()
}
else if(pickerView == timePicker) {
timeTextfield.text = timeData[row]
timePicker.hidden = true
tableView.reloadData()
}
}
func textFieldShouldBeginEditing(textField: UITextField) -> Bool {
if(textField == courseTextfield) {
coursePicker.hidden = false
}
if(textField == playerTextfield) {
playerPicker.hidden = false
}
else if(textField == timeTextfield) {
timePicker.hidden = false
}
return false
}
//end of pickerViews
//segue
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
if segue.identifier == conSegueIdentifier {
let cvc = segue.destinationViewController as! ConViewController;
let indexPath: NSIndexPath = self.tableView.indexPathForSelectedRow!
let valueToPass:String
if(timeTextfield.text == timeData[2]){
tblIndex = indexPath.row + 25
valueToPass = tableData[indexPath.row + 25]
}
else {
tblIndex = indexPath.row
valueToPass = tableData[indexPath.row]
}
cvc.conName = courseTextfield.text
cvc.conDateName = dateTextfield.text
cvc.conTimeName = valueToPass
cvc.indexOfTbl = tblIndex
}
}
最佳答案
我只是复制/粘贴了您在空白项目中编写的相同代码,然后它 works fine .所以我想主要问题不在我们的视野范围内,也许当您使用 UITableView 时。 您能向我们展示这个 View Controller 的其余代码吗,尤其是当您出队 TableView 单元格和正在初始化 dateTextfield?
附言我还强烈建议您不要在每次需要时都创建新的NSDateFormatter实例,因为这样效率不高。最流行的(也是 Apple 开发人员推荐的)做法是使用单例和惰性初始化器来缓存 NSDateFormatter。 StackOverflow 有一个 really good topic
关于ios - 为什么我的 datePicker 没有显示?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33745374/
我正在尝试使用 720Kb 日期选择器。 https://github.com/720kb/angular-datepicker 使用简单示例时: 我收到打击错误: angular.js:1
我开始使用react-datepicker组件。 https://github.com/Hacker0x01/react-datepicker 我运行了该示例,现在我想对其进行调整,使其没有初始值。示
我正在使用 Angular-ui 日期选择器,除了日期选择器的初始状态外,一切实际上都工作正常。我选择日期后,看起来不错。见下文: 初始状态 在选择器中选择日期后 所以,显然我在第一种情况下得到了日期
我需要为回历日期设置日期选择器。我可以使用 jquery datepicker 或 bootstrap datepicker。但是我写了这段代码
在选择范围时,我遇到了 jquery UI datepicker 的一个奇怪问题。在提出问题之前,我正在研究许多其他人编写的代码。他们以优化的顺序包含了 jquery 工具和 UI,因此所有功能都可以
我有两个剑道 DatePickers 来选择工作的开始和结束日期。作业由多个任务组成,其中包含自己的完成日期(任务在网格中列出,每条记录使用 kendo DatePicker 选择完成日期) 当用户设
我想将功能添加到 Material 日期选择器,以便能够选择周.. 因此,当我从一行中选择一个日期时,我希望它输出从一周开始到一周结束的日期范围。 我之前在常规 jquery 日历上这样做过--检查照
在 SwiftUI 中使用新的 (iOS 14) DatePicker,它按预期工作并且在模拟器和设备上看起来很好,但是一旦日历弹出,我会在输出窗口中收到几行警告。这有点烦人! 虽然日志贴在下面,但看
我将如何创建 doctrine_orm_datetime_range使用 jQuery UI 日期选择器的 Sonata Admin Bundle 中的过滤器? 我尝试了以下方法,但不起作用: pro
有人知道如何设置 gem bootstrap-datepicker-rails 吗?我按照 http://rubydoc.info/gems/bootstrap-datepicker-rails/0.
在 kartik DatePicker Yii2 中有没有办法 - 我可以禁用大于当前日期的日期? 例如:如果今天是 2016 年 3 月 14 日,则应禁用 2016 年 3 月 15 日的日历日期
在 UIDatePicker 我们可以做这样的事情 datePicker.timeZone = TimeZone(secondsFromGMT: 5*60*60) 为了指定日期选择器的时区。 但是如何
我在 FullCalendar ( http://www.eyecon.ro/datepicker/ ) 页面正下方添加了一个 datePicker ( http://fullcalendar.io
我在一个 Polymer 项目中有两个 Vaadin-datepickers。一个有开始日期,一个有结束日期。我想确保结束日期总是在开始日期之后。我阅读了 API 文档,他们说您可以使用 min ma
我正在Angular 6中搜索Datepicker,它可以显示基于回历日历的阿拉伯日期。 似乎找不到一个。是否有可用的东西,或者我们需要从头开始构建它。 最佳答案 Ng bootstrap或angul
JavaFX8 中是否有一种方法可以从 Java 代码中选择 DatePicker 中的日期(作为文本)?我想以这样一种方式激活带有 DatePicker 的控件,用户可以在不使用鼠标的情况下编辑日期
我在一个 Polymer 项目中有两个 Vaadin-datepickers。一个有开始日期,一个有结束日期。我想确保结束日期总是在开始日期之后。我阅读了 API 文档,他们说您可以使用 min ma
我正在尝试验证datepicker,因为startDate应始终小于EndDate。如果我手动更改日期,则 StartDate 有效,但 EndDate 无效。 我的JavaScript代码: $(d
我是 jquery 和 javascript 的菜鸟。因此,虽然我看过很多解决我的问题的 SO 帖子,但我无法将各种解决方案“组装”成适合我的东西。 我的上下文:查询结果显示在表单中。在每一行中,其中
我正在开发 Windows Phone 8.1 应用程序。我正在尝试使用 DatePickerFlyout 但没有取得适当的成功。我正在选择日期并尝试用选定的日期设置按钮内容,但它没有设置。当我调试以
我是一名优秀的程序员,十分优秀!