回答
对于这种情况,你应该将其添加为UIPickerView。假设问题是:如何在本月的日子填充它的值?使其更清晰,我会提到它的步骤:
你应该得到当月开始和结束日期。你可以通过检查this answer找到如何实现它。
您需要在开始日期和结束日期之间获得所有日期 - 所需格式。你可以通过检查this answer找到如何实现它。
在获得当月的所有日子之后,您可以轻松地填充日期选择器数据源方法。
实现:
class ViewController: UIViewController, UIPickerViewDataSource, UIPickerViewDelegate {
var currentMonthDays: [String] {
var array = [String]()
var date = Date().startOfMonth() // first date
let endDate = Date().endOfMonth()
let fmt = DateFormatter()
//fmt.dateFormat = "dd/MM/yyyy"
fmt.dateFormat = "EEE dd MMM"
while date <= endDate {
date = Calendar.current.date(byAdding: .day, value: 1, to: date)!
array.append(fmt.string(from: date))
}
return array
}
override func viewDidLoad() {
super.viewDidLoad()
print(currentMonthDays)
}
// Picker View Data Soruce & delegate Methods
// REMARK: make sure to connect pickerview datasource/delegate to your view controller,
// I did it from the storyboard
func numberOfComponents(in pickerView: UIPickerView) -> Int {
return 1
}
func pickerView(_ pickerView: UIPickerView, numberOfRowsInComponent component: Int) -> Int {
return currentMonthDays.count
}
func pickerView(_ pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String? {
return currentMonthDays[row]
}
}
// Step #1:
extension Date {
func startOfMonth() -> Date {
return Calendar.current.date(from: Calendar.current.dateComponents([.year, .month], from: Calendar.current.startOfDay(for: self)))!
}
func endOfMonth() -> Date {
return Calendar.current.date(byAdding: DateComponents(month: 1, day: -1), to: self.startOfMonth())!
}
}
谢谢,这是我想要的最终解决方案 –
很高兴帮助!不要忘记接受:) –
仅供参考,接受答案将导致: - 给予回复者+15点声望点。 - 给你(提问者)+2点声望。 - 而最重要的是,它表明这个答案是解决观众的这个问题的方法。 –
请按以下步骤操作: -
1.您必须更改日期,并申请。
2.将您的NSArray
或NSMutableArray
中的所有日期(字符串格式)保存为您的UIPickerView
Datasource
方法。
3.然后致电UIPickerView
Datasource
和Delegate
获取您的结果的方法。
对于日期转换,您可以应用以下代码。
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "EEE dd MMM"
let currentDate = NSDate()
let convertedDateString = dateFormatter.string(from:currentDate as Date)
print("convertedDate: ", convertedDateString)
是的谢谢你的解决方案 –
如果它的工作接受了答案并放弃了其他SO访问者可以在他们的代码中应用上面的代码来解决他们的问题。谢谢。 – shahnilay86
我不知道这是如何产生他想要的视觉输出 –
- 1. 如何自定义UIDatePicker
- 2. UIDatePicker自定义
- 3. 如何与多个输入来实现自定义层Keras
- 4. 如何为以下情况实现自定义授权属性?
- 5. 如何创建自定义UIDatePicker控件
- 6. 我可以自定义UIDatePicker吗?
- 7. 如何在倒计时模式下自定义UIDatePicker
- 8. 设置自定义IQ实现以读取以下XMPP。
- 9. Django:如何定义模型关系以实现以下目标?:
- 10. 如何实现以下C++输出格式?
- 11. iTunesMobileDevice.dll的自定义实现抛出NullReferenceException
- 12. 实现自定义用户时出错
- 13. 自定义实体实现
- 14. 如何实现自定义单元格
- 15. 如何实现自定义RoleProvider?
- 16. 如何实现自定义进度条
- 17. 如何实现自定义异常?
- 18. 如何实现自定义滑盖点
- 19. 如何为Listview实现自定义FirebaseAdapter?
- 20. 如何实现自定义事件?
- 21. 如何实现自定义segue动画?
- 22. 如何实现自定义oracle序列?
- 23. 如何实现自定义WPF控件
- 24. 如何实现自定义协议
- 25. Cakephp:如何实现自定义分页?
- 26. 如何实现MVVM自定义控件?
- 27. 如何实现此自定义平等?
- 28. 如何实现自定义SftpSimplePatternFileListFilter?
- 29. 在Hadoop教程中运行实现自定义输出格式
- 30. 使用自定义链表实现获取错误的输出
什么使得它作为一个UIPickerView呢? –
这样可以使用Normal UIPickerView –
如何给这个输入@AhmadF –