您实际上从项目成就中学到了什么? (2/2)

在上一个故事中,我讨论了已解决的主要错误。 接下来,我将分享我自己开发的一些小功能。 我知道这些很简单,并且已经有很多库可用。 但是,这全都取决于您如何努力地自己做事。

使用默认的UISlider不能这么自定义。 因此,我制作了一个自定义类ProgressBar 。 在此,我添加了子视图(上面蓝色突出显示的一个)。 添加了@IBInspectable属性,以便我们可以直接从情节提要中以编程方式自定义。

所以我用自定义类SnackBar创建了一个新的UIView

拖延了titleLabel并添加了UIViewController的扩展名,以便我可以从任何视图控制器中调用。 但是我遇到的主要问题是如何在任何视图控制器中提示。 幸运的是,我从堆栈溢出得到了关于任何视图中的浮动对象的答案,即使用UIWindow和Apple已经在AppDelegate类中提供了窗口对象。

我拖动一个UIView并将UITableView作为子视图添加到我的ViewController中,将DropDownView分配为带有插座的自定义类。

  @IBOutlet弱var dropDownView:DropDownView! 

在底部添加了一个UIView作为高度限制为1的分隔符。上部包含一个标签,其中显示了选定的选项。

那就是带有标题和标记的Option表单元UI。 这对于所选选项将是可见的。

DropDownTableViewCell是上述选项单元格UI的自定义类。

DropDownCellModel是由选项类型( PerformanceDateGroup )和选定状态组成的单元格模型。

现在,根据要求,每天,每周和每月需要3个选项。
创建枚举PerformanceDateGroup选项案例。

上面的类是DropDownView,它由

1. OptionTableView的 委托dataSources

2. setupGesture()已添加到选定标签。 点击它会调用toggleMenu()方法来显示/隐藏下拉菜单。

3. handleFilterSelection()装饰用户选择的那个单元格。

4.在选择选项时,它调用的是委托方法didSelect(…) ,该方法执行符合ViewController的操作。

用法:

  1. setupDropDown()将设置下拉单元模型并委托。
  2. setupData()首次使用日期选项作为过滤器时第一次处理您的数据。
  3. hideOnOtherView()处理用户是否在下拉菜单外点击。 如果下拉菜单可见,它将隐藏。

希望您喜欢这个故事,并希望自己开始发展。 👏👏👏
您的一项努力可以将事情变成另一个层次 🎉🎉🎉

待会儿👋👋👋!!!

Interesting Posts