自定义日历控件(只是包含年和月)

因项目需要一个只显示年和月的日历,网上没有找到合适的,只有自己写了一个比较简单的,也封装的不够彻底,不过能用就行,凑合着看嘛。

中间遇到了很多小问题,并不难,只是有时半天手足无措,所以特此记录一下

我是用到了系统的UIPickerView控件,把它封装在一个View里面



小问题1. 要将添加PickerView的代码写在layoutSubviews方法中,但是其他的Button之类的不用放在此方法中。如果不这么写,会出现两个PickerView


如图:

如果将Button也写在此方法中,button显示不出来,如图:


我想了一下,之所以会出现两个,虽然我明明只是添加了一次,是因为,有一个是系统自带的,默认的大小PickerView在里面。

因为如果不写在layoutSubviews中的话,当你添加的时候,PickerView还没有frame,所以就给你添加了一个系统默认大小的PickerView。后面当你设置frame的时候,又产生了一个新的PickerView,又重新添加了一次,由于原来添加的还在,所以就有两个PickerView。而Button,并没有系统默认的frame,所以不必写在layoutSubviews中,至于为什么写在这里面会不显示,以我现在的知识也还不太清楚。

反正记住那些系统有默认的frame控件的添加都放在layoutSubviews中,至于没有默认的就不要放,就可以了。


小问题2. 设置PickerView初始默认选中的值,用此方法才可以。用别的方法不行,我之前看别的博客说用这个方法,结果并不行,我以为是我位置放的不对,结果试了很多地方都不对,误导了我很久。


以下是效果图和所有相关代码。本人技术还很菜,请多包涵



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值