开发者社区 问答 正文

如何在SWIFT中更改UIContextualAction的大小

我试图改变上下文操作视图的大小。但是我只能改变图像的大小和修改标签。

let call =  UIContextualAction(style: .normal, title: "Call", handler: { (action,view,completionHandler ) in
                //do stuff
                completionHandler(true)
            })

        call.image = UIGraphicsImageRenderer(size: CGSize(width: 10, height: 10)).image {
            _ in UIImage(named: "call")!.draw(in: CGRect(x: 0 , y: 0, width: 10, height: 10))

        }
        call.backgroundColor = .black

展开
收起
游客5akardh5cojhg 2019-12-17 14:56:03 1114 分享 版权
阿里云 AI 助理回答

在您的代码片段中,您尝试通过创建一个具有自定义大小的UIContextualAction来改变操作视图(contextual action view)的外观,特别是通过修改其关联图像的大小。然而,直接调整UIContextualAction的视图大小(比如整个操作按钮的大小)并不像调整图像或标签那样直接支持。

如果您希望整体改变上下文操作视图的尺寸,可能需要采取一些间接方法或者自定义实现,因为UIContextualAction本身并未公开直接设置尺寸的API。以下是一些建议:

  1. 自定义View: 虽然不能直接改变UIContextualAction的大小,但您可以考虑使用自定义的UIView作为上下文操作的呈现方式。这要求您实现更多的自定义逻辑,包括处理触摸事件和视图布局。

  2. 内容内缩放: 通过调整内部元素(如图标、标签字体大小等)来视觉上“缩小”整个操作的外观。您已经在做这个,通过减小图像的尺寸来尝试达到类似效果。

  3. 利用Appearance Proxy: 如果是想全局改变所有UIContextualAction的样式,可以考虑使用UIAppearance协议来统一设置,尽管这通常限于颜色、字体等属性,不直接涉及尺寸调整。

  4. 自定义TableViewCell: 在UITableView或UICollectionView中,当展示这些上下文操作时,可以通过自定义TableViewCell的高度间接影响操作视图的显示空间,但这同样不是直接改变操作本身的尺寸。

  5. 使用其他库或自定义解决方案: 如果上述方法都不能满足需求,可能需要寻找或开发一个更灵活的上下文菜单组件,以允许更细致的自定义控制。

请记住,iOS的人机界面指南推荐保持系统标准组件的一致性以提升用户体验,因此在进行此类定制时应谨慎考虑是否符合整体应用设计和用户体验原则。

有帮助
无帮助
AI 助理回答生成答案可能存在不准确,仅供参考
0 条回答
写回答
取消 提交回答
问答分类:
问答地址: