Ios 如何删除Objective C中的视图
我有一个带有Ios 如何删除Objective C中的视图,ios,objective-c,uitableview,cocoa-touch,uiviewcontroller,Ios,Objective C,Uitableview,Cocoa Touch,Uiviewcontroller,我有一个带有标签的视图(CupsViewController),点击时,TableView(AddressTableController)从屏幕底部滑动并停留在下半部分。 在TableView中,当按下Ok按钮时,我想更改Label的值,并通过动画删除TableView(即滑动到底部) 这是我的密码: CupsViewController 单击标签时调用的方法 按下按钮时从AddressTableController调用的方法 图像 如您所见,我尝试了removeFromSuperview,但
标签的视图(CupsViewController
),点击时,TableView
(AddressTableController
)从屏幕底部滑动并停留在下半部分。
在TableView
中,当按下Ok按钮
时,我想更改Label
的值,并通过动画删除TableView
(即滑动到底部)
这是我的密码:
CupsViewController
单击标签时调用的方法
按下按钮时从AddressTableController
调用的方法
图像
如您所见,我尝试了removeFromSuperview
,但它没有任何作用。如何将TableView
滑动到底部?您的myTableView
属性似乎返回了一个不同的视图,而不是视图
属性中引用的视图。因此,您基本上将前者添加为子视图([[self view]addSubview:[addressTableController myTableView]];
),但尝试删除后者([addressTableController.view removeFromSuperview];
)
照办
[[addressTableController myTableView] removeFromSuperview];
而不是
[addressTableController.view removeFromSuperview];
给你。干杯,伙计!:)
附言。
如果要设置视图的动画,可以这样做
[UIView animateWithDuration:1.0 delay:0 options:UIViewAnimationOptionBeginFromCurrentState animations:^{
// animation code...
} completion:^(BOOL finished) {
[[addressTableController myTableView] removeFromSuperview];
}];
是否[addressTableController myTableView]
和addressTableController.view
返回相同的对象?如果我返回addressTableController.view
,则表将显示在实际视图的底部(就像现在一样)和上方,覆盖所有屏幕。因此addressTableController.myTableView
不等于addressTableController.view
。如果您尝试[[addressTableController myTableView]removeFromSuperview]代码>而不是[addressTableController.view removeFromSuperview]代码>?因为您将前者添加为子视图,而不是后者。您是否试图更改tableview的大小以使其覆盖更少的屏幕?或者,您是否试图将其完全移出屏幕,然后将其从视图中完全移除?我不太确定你想做什么动画,然后你想要什么效果。我假设您希望完全在屏幕外设置视图的动画,然后将其从超级视图中删除,使其不再保留在视图层次中?请澄清!您好,我想,您正在创建addressTableController的两个不同对象,并尝试删除其他对象而不是添加的对象。。
[addressTableController.view removeFromSuperview];
[UIView animateWithDuration:1.0 delay:0 options:UIViewAnimationOptionBeginFromCurrentState animations:^{
// animation code...
} completion:^(BOOL finished) {
[[addressTableController myTableView] removeFromSuperview];
}];