我试图解决的问题是:我有一个DetailViewController
显示我的模型的数据UIImageView
's, UITextFields
's, etc.
如果用户点击一个按钮,那些DetailViewController
的视图移动到不同的位置并开始可编辑。可编辑时,如果用户点击其中之一UITextField
(只有其中之一是特殊的)UITextField
移至屏幕顶部并显示UITableView
似乎会自动完成它(就像您在谷歌上输入某些内容时一样)。
用户还可以点击同一按钮返回到显示状态(没有任何内容可编辑)。
所以基本上我有一些看法ViewController
有 3 种可能的状态:DisplayState
, EditingState
, EditingWithFocusOnSpecialTextFieldsState
.
我想要所有描述的定位状态NSLayoutConstraints
,并且,如果可能的话,就在故事板中。
我能做的一件事就是这个动画化故事板状态/位置 https://stackoverflow.com/questions/22903571/animate-to-a-storyboard-state-position,但这涉及到在代码中编写每个状态的每个约束,因此我在开发时无法在故事板中很好地可视化它们(而且,在代码中编写约束比在故事板中编写约束的可维护性要差得多)。
例如,我想要创建 3 个不同的 XIB,或者我的 XIB 的不同副本DetailViewController
在故事板中,每个子视图有 3 个不同的位置,然后在它们之间进行动画处理。
如果有什么区别的话,我总是使用最新的 iOS 版本(现在是 iOS 8)和 Swift。
如果你不想用 Swift 回答的话,我也非常了解 Objective-C。