gpt4 book ai didi

ios - 如何重构集合 UI (iOS) 元素,使其可重用

转载 作者:行者123 更新时间:2023-12-01 16:34:58 26 4
gpt4 key购买 nike

类似于 Refactoring 3 different UI components into one UIView into a CocoaPod但我想也许我做错了核心重构。

所以,我有一个 3 UIView我一直重复使用的元素:

  • 标签
  • 输入
  • 复选标记

  • 我还想重构一些验证和其他逻辑(与新类保持一致,因此逻辑也被重用)。

    那么,我想从 UIViewController 开始吗?子类并添加我使用这些元素或 UIView 的所有地方?

    我不明白 UIVew应该/可能具有所需的验证逻辑。所以,那么我需要一个 UIViewController .但这对我来说没有多大意义,因为你有 UIView对象在您的 View 中,而不是 UIVIewController对象。

    想法?

    编辑:
  • 什么验证?
  • 基本上有一个标签,输入和复选框。
  • 当用户输入文本时,标签会改变颜色,并且复选标记会根据验证改变状态(我实际上打算做验证委托(delegate))
  • 当用户完成编辑并且一切正常时,复选标记为绿色并且标签再次改变颜色。
  • 最佳答案

    我在 my latest blog post 中谈到了这一点.

    您的问题中几乎没有信息可以提供详细的答案,但您可以通过多种方式进行。

    您需要创建一个 UIView子类并添加 subviews为其添加标签、输入和复选标记,并将这些作为属性提供,以便您可以执行类似...

    myReusableView.label.text = @"Hello world";

    或者
    [myReusableView.input becomeFirstResponder];

    然后你需要实际添加这些 subview 。这可以在代码中完成...
    - (instancetype)initWithFrame:(CGRect)frame
    {
    ...
    self.label = [UILabel new];
    self.label.frame = //blah
    [self addSubview:self.label];
    ...
    }

    或者您可以在 Nib 中执行此操作并连接 socket 等...

    在其中放置少量验证并没有错。这种情况经常发生。例如,如果您尝试将 progressView 值设置为大于 1,那么它将捕获它并将其设置为 1,依此类推。

    这还取决于您正在执行哪种验证。您总是可以将它放在 viewController 中并将其用作 subview Controller (尽管我个人不会这样做)。

    您可以提供委托(delegate)方法将验证“外包”到其他地方。

    你在做什么验证?

    关于ios - 如何重构集合 UI (iOS) 元素,使其可重用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29100970/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com