- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我的代码相当简单 - 一个带有数据源的自定义表,用于从 Web 服务异步提供数据。
为了获得最好的用户体验,我想让 UIRefreshControl
在这个 Controller 出现时动画加载过程,而不是仅在列表被拉下时。
不幸的是,如果我在 ViewDidAppear
期间调用我的方法,UIRefreshControl
根本不会出现。
我尝试了回答这些问题的建议,但似乎没有一个对我有用:
public partial class ControlCenterSelectionController : UITableViewController
{
public ControlCenterSelectionController (IntPtr handle) : base (handle)
{
}
public override void ViewDidLoad()
{
base.ViewDidLoad();
TableView.RefreshControl = new UIRefreshControl();
TableView.RefreshControl.ValueChanged += RefreshControlOnValueChanged;
}
private async void RefreshControlOnValueChanged(object sender, EventArgs eventArgs)
{
await UpdateDataSourceAsync();
}
public override async void ViewDidAppear(bool animated)
{
base.ViewDidAppear(animated);
TableView.SetContentOffset(new CGPoint(0, -TableView.RefreshControl.Frame.Size.Height), true);
await UpdateDataSourceAsync();
}
private async Task UpdateDataSourceAsync()
{
TableView.RefreshControl.BeginRefreshing();
var ccClient = DI.Instance.Get<IControlCenterRestClient>();
var controlCenters = await ccClient.GetAllAsync();
var source = new GenericViewSource<ControlCenter>(controlCenters, item => item.Name, ControlCenterSelected);
TableView.Source = source;
TableView.RefreshControl.EndRefreshing();
}
private void ControlCenterSelected(ControlCenter controlCenter)
{
var controller = this.InstantiateController(Constants.ViewControllerIds.ControlCenter) as ControlCenterController;
controller.ControlCenter = controlCenter;
this.NavigateTo(controller);
}
}
我目前得到的只是一个看起来空的屏幕,加载数据时没有任何指示,然后在完成后更新屏幕。
有人能发现错误吗?我真的找不到,因为这段代码相当简单。
最佳答案
在 SO 上发布它的绝望 + 绝望的编码尝试是关键:
public override async void ViewDidAppear(bool animated)
{
base.ViewDidAppear(animated);
TableView.SetContentOffset(new CGPoint(0, -(TableView.RefreshControl.Frame.Size.Height + 20)), true);
TableView.RefreshControl.BeginRefreshing();
await UpdateDataSourceAsync();
}
private async Task UpdateDataSourceAsync()
{
var ccClient = DI.Instance.Get<IControlCenterRestClient>();
var controlCenters = await ccClient.GetAllAsync();
var source = new GenericViewSource<ControlCenter>(controlCenters, item => item.Name, ControlCenterSelected);
TableView.Source = source;
TableView.RefreshControl.EndRefreshing();
}
这一变化尤其带来了不同:
-(TableView.RefreshControl.Frame.Size.Height + 20)
事实证明,虽然在其他问题中通过简单地应用基于 RefreshControl 的滚动会触发动画来解决问题,但在我的情况下,我必须添加一些额外的 y 增量来使动画触发。
只有当扩展边缘设置为在顶部条下延伸时,才需要这个额外的偏移量。
关于ios - 如何让我的 RefreshControl 在 ViewDidAppear 期间出现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40154014/
从后台返回到我的 iPhone 应用程序后,未调用方法 viewDidAppear。 有没有人能解决这个问题? 每次显示我的 MainViewController 时(即使从后台返回后),我都需要调用
我想在出现特定选项卡时执行某些操作。意思是,用户单击了选项卡 View 的选项卡按钮。发生这种情况时 viewDidAppear 不会触发。我还能如何 Hook 选项卡单击事件? 最佳答案 你可以实现
当用户启动应用程序时,我希望它显示 stockholm.xib它在这里: -(void)viewDidAppear:(BOOL)animated{ [super viewDidAppear:a
当前遇到一个问题,我在使用显示转场到单独的弹出 View 后尝试更新我的 View 。初始 viewDidAppear 在加载时被触发,但是在我关闭其他 View 并转换回另一个 View 后,它不会
我的想法是这个 View 何时出现。我想让它按位置检测。所以如果用户在新加坡。新加坡细胞将被重点关注。有什么办法可以实现吗?我确实看到了这个功能,但不知道如何使用 didHighlightRowAtI
我有一个 UItextview,我可以在里面写入数据类,我可以在我的 View 中的任何地方提供数据,在 ViewDidAppear 函数中我传递了我的数据,但它有点慢。文本在 0.2-0.3 秒后出
我有 2 个 View Controller ,vc1 和 vc2。当我想加载 vc2 时,从 vc1 调用模态转场。假设我在显示 vc2 时将应用程序置于后台。当应用程序重新打开到之前关闭的 Vie
我正在我的应用程序的 viewDidApepar 中对一个带有动画的方法进行简单调用, Storyboard中动画 View 的初始位置是 (10 , 5) - 几乎隐藏在主视图之外。 -(void)
我遇到了一些非常奇怪的情况。 我的代码看起来像这样: - (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBund
在我的代码中,我有一个 viewWillAppear 调用,类似于下面的调用,旨在将某些对象移开。 override func viewWillAppear(_ animated: Bool) {
我有一个 HomeViewController 正在使用 segue 打开一个 WelcomeViewController 并且来自 Sheet 类型。 在 WelcomeViewController
我正在尝试为两个文本字段和一个标签创建动画幻灯片。然而,出于某种原因,每次您尝试单击文本字段时,viewDidAppear() 函数都会运行,导致它们继续动画。有人有什么想法吗? 这是我的函数代码:
我注意到当按下主屏幕然后再次启动时,viewDidAppear 没有被调用。这就是为什么在我按下主页按钮然后再次启动我的应用程序后我的动画停止工作的原因。有什么办法可以解决这个问题吗? overrid
我设置了一个 void如果用户触摸按钮,则从另一个类调用该方法。但是,我收到“其 View 不在窗口层次结构中”的错误,然后我发现了这个:whose view is not in the window
背景:我想确保我的 viewControllers 在出现时正确旋转。我的 viewControllers 有很好的代码来管理可见时的旋转和方向。 问题:给定 NavigationController
我遵循了这个指南: https://codewithchris.com/iphone-app-connect-to-mysql-database/#app 我在覆盖功能上遇到了这个问题: Argume
如果我有一个名为 B 的 UIViewController。如果我将 UIViewController C 添加为 B 的 subview / subview Controller 。然后我也将 D
是否有标志指示 viewDidAppear 已被调用? 我想我可以在子类化的 UIViewController 中创建我自己的标志,但我想知道是否已经有了一些东西。 我问的原因是因为我想在某些服务器端
在我的主 UIViewController 中,我添加了一个主屏幕 View Controller 作为 subview : UINavigationController *controller
首先,我创建了一个 MainViewController。然后在 MainViewController 中,我做 [self presentViewController:modalViewContro
我是一名优秀的程序员,十分优秀!