iOS - 故事板本地化的最佳架构 Scene/ViewController
iOS - best architecture for localizing a storyboard Scene/ViewController
我继承了一个现有的情节提要,其中有一个 viewController 名为 loginScreen。它看起来像这样:
这存在于 main.storyboard
我们为即将推出的新产品创建了另一个目标。该产品与我继承的初始产品非常相似,因此目标是原件的副本。为了在登录屏幕上找到问题的要点,我展示了一张 UX 团队的图片,希望某些事情发生变化,这里是他们想要完成的事情的 puesdo 示例:
请记住,这两个产品共享几乎完全相同的代码。所以在一个 viewController UI 中,登录屏幕略有不同。我怎样才能干净利落地做到这一点?我可以在 viewController.m:
中做这样的事情
//puedoCode
if(mySecondTarget){
moveButtonDown();
changeSpacingBetweenEntities();
//etc
}
但是这种遍及我的代码的速度很糟糕,因为它将 UI 逻辑与代码联系在一起。
我真正希望我能做的是根据我的产品将故事板中的 viewControllers 本地化。然后我可以为每个目标设置一个登录屏幕。但是我的团队不想本地化故事板文件。我们希望保留与我们分叉的另一个团队共享的故事板文件,我们希望在那里更新。
"Localizing" 是一个术语,意思是翻译成其他语言。
我同意您最好为每个产品定制故事板 - 共享 ViewController 代码并为每个产品提供定制外观。如果它只是颜色和字体,我会说看看 NUI,但由于您还更改了布局,因此您的代码将变得混乱,需要调整每个产品的所有内容。到那时,您还不如放弃情节提要并在代码中创建其他产品的 UI(不理想的恕我直言,我宁愿使用情节提要!)
我继承了一个现有的情节提要,其中有一个 viewController 名为 loginScreen。它看起来像这样:
这存在于 main.storyboard
我们为即将推出的新产品创建了另一个目标。该产品与我继承的初始产品非常相似,因此目标是原件的副本。为了在登录屏幕上找到问题的要点,我展示了一张 UX 团队的图片,希望某些事情发生变化,这里是他们想要完成的事情的 puesdo 示例:
请记住,这两个产品共享几乎完全相同的代码。所以在一个 viewController UI 中,登录屏幕略有不同。我怎样才能干净利落地做到这一点?我可以在 viewController.m:
中做这样的事情//puedoCode
if(mySecondTarget){
moveButtonDown();
changeSpacingBetweenEntities();
//etc
}
但是这种遍及我的代码的速度很糟糕,因为它将 UI 逻辑与代码联系在一起。 我真正希望我能做的是根据我的产品将故事板中的 viewControllers 本地化。然后我可以为每个目标设置一个登录屏幕。但是我的团队不想本地化故事板文件。我们希望保留与我们分叉的另一个团队共享的故事板文件,我们希望在那里更新。
"Localizing" 是一个术语,意思是翻译成其他语言。
我同意您最好为每个产品定制故事板 - 共享 ViewController 代码并为每个产品提供定制外观。如果它只是颜色和字体,我会说看看 NUI,但由于您还更改了布局,因此您的代码将变得混乱,需要调整每个产品的所有内容。到那时,您还不如放弃情节提要并在代码中创建其他产品的 UI(不理想的恕我直言,我宁愿使用情节提要!)