夏日12日-自定义模式

今天,我致力于创建一个自定义模式,当您要将新专辑添加到库时会弹出该模式。 我想制作一个自己的ActionSheet,每当找到新专辑时,它就会从屏幕底部出现。 为此,我使用所需的布局创建了一个视图控制器。 然后像这样实例化我的ViewController:

 让addAlbumViewController = AddAlbumViewController()addAlbumViewController.modalPresentationStyle = .overCurrentContext 

然后,将视图的Alpha值设置为零。 然后,我开始在屏幕底部构建一张小卡片。 呈现时,此ViewController的行为与默认操作表非常接近。

接下来,我希望能够通过触摸操作表视图外部来关闭自定义操作表。 为此,我创建了一个“背景”视图,该视图占据了动作表视图上方的整个屏幕。 然后,我添加了一个手势识别器,如下所示:

 让gestureRecognizer = UITapGestureRecognizer(目标:自我,行动​​:#selector(backgroundTouched))backgroundView.addGestureRecognizer(gestureRecognizer) 

每当操作表显示时,我还想添加触觉反馈。 我使用以下几行代码来实现这一点:

 让影响= UIImpactFeedbackGenerator()impact.impactOccurred() 

最后,我想确保数据库中不存在相册,因此我对相册NSManagedObject类进行了扩展。 我在此扩展中添加了一个静态方法,该方法采用一个externalUrl(我将其用作id是因为它是唯一的)和一个NSManagedObjectContext。 然后,我使用externalUrl进行了获取,如果存在,则返回true,否则返回false。

新的操作表如下所示:

Github链接:

harrysummers /无限图书馆

通过在GitHub上创建一个帐户为Infinite-Library开发做出贡献。

github.com