- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在 Controller.ViewDidLoad 中创建 UIActivityIndicatorView
UIActivityIndicatorView spinner = new UIActivityIndicatorView();
spinner.StartAnimating();
spinner.Hidden = true;
this.Add(spinner);
然后我将它与 MVVMCross 绑定(bind)
var set = this.CreateBindingSet<TipView, TipViewModel>();
set.Bind(spinner).For(v => v.Hidden).To(vm => vm.IsBusy).WithConversion("Inverse");
当 View 最初加载时,UIActivityIndicatorView 正在旋转并且可见。这是不正确的,因为 IsBusy 属性在 ViewModel 的 Init() 中被显式设置为 False。我可以看到这种情况发生,并且我可以看到转换器反转该值。
我知道绑定(bind)已正确连接,因为如果我触发更新 IsBusy 属性的命令,指示器将按我的预期显示和隐藏。这只是初始状态不正确。
StartAnimating 方法似乎会导致隐藏标志被覆盖。如果我不调用 StartAnimating,指示器将按预期隐藏和显示。当然,这意味着我有一个非动画指标。
我可以获取对 VM 的 WeakReference,监听 PropertyChanged 并调用 StartAnimating,但这似乎有点垃圾。
大家有更好的想法吗?
最佳答案
您可以执行的一些选项:
订阅 PropertyChanged 更改并在事件处理程序中编写自定义代码(按照您在问题中的建议)
继承 UIActivityIndicatorView
并编写一个公共(public) get;set;
属性,该属性提供复合功能(调用 Start
和 >隐藏
)在set
处理程序
public class MyIndicatorView : UIActivityIndicatorView {
// ctors
private bool _superHidden;
public bool SuperHidden {
get { return _supperHidden; }
set { _superHidden = value; if (!value) StartAnimating() else StopAnimating(); Hidden = value; }
}
}
提供一个 View
public get;set;
属性并将复合功能放入其中(例如 set.Bind(this).For( v => v.MyAdvanced)...
private bool _myAdvanced;
public bool MyAdvanced {
get { return myAdvanced; }
set { myAdvanced = value; if (!value) _spinner.StartAnimating() else _spinner.StopAnimating(); _spinner.Hidden = value; }
}
为 Hidden 编写一个自定义绑定(bind),它将替换默认功能并包含组合的 Start
和 Hidden
调用(有关自定义绑定(bind)的更多信息,有几个N+1教程)
关于xamarin.ios - UIActivityIndicatorView.StartAnimating 重写 UIActivityIndicatorView.Hidden 绑定(bind),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27906367/
我正在尝试学习如何在 objc 中使用 UIViewPropertyAnimator。我用一个名为“blueBox”的对象制作了一个简单的测试应用程序。我想改变 blueBox 的属性。 我在@imp
我正在开发一个使用动画的应用程序。为了给我的图像添加动画效果,我使用了一些 NSArray : @property (retain) NSArray * imagePig1; 当我第一次打开UIVie
这个问题在这里已经有了答案: Cocoa animationImages finish detection (3 个答案) 关闭 7 年前。 我希望在单击按钮时运行一个简单的图像数组动画。下面的代码
我有一个带有两个 ImageView 的框架布局。一个在另一个之上。 我想默认隐藏第二个 ImageView,并在用户双击帖子时将其显示在第一个 ImageView 的顶部,动画持续 1000
我正在尝试为 TableView 单元格中的一系列图标图像设置动画,但无法让 ImageView.StartAnimating 工作。 TableView 位于 UITableViewControll
我有一个动画由于某种原因没有动画。 - (void)viewDidLoad { [super viewDidLoad]; self.navigationController.navig
我在 blah.startAnimation(anim) 上收到 NullPointerException,它位于 LongClickListener 内。我想要做的是在 DragListener 的
我有一个 21 帧的菜单背景动画。我在 View 的 viewDidLoad 方法中使用以下代码将它们加载到内存中。 NSMutableArray *menuanimationImages = [[N
我正在尝试通过使图像按钮在单击时 Swing 来为它们设置动画。 @Override public void onClick(View v) { switch (v.getId())
我无法解决的问题是,当我执行时,我的 View 中的 UIActivityIndicatorView 不会开始动画 [UIActivityIndicatorView startAnimating]
我尝试搜索,但没有找到任何线索。我还依赖于放下一个按钮,当我尝试在该按钮的功能中设置事件指示器的动画时,它正在设置动画。 只要我在按钮的方法中编写代码,事件指示器讲解器就会工作。 请提出改进建议
时不时来这里几个月后,终于轮到我提交问题了: 我有一个带有自定义 ArrayAdapter 的 ListView,它从 Internet 加载图像(每行一个图像)。我制作了一个 ImageCache
我创建了一个自定义 View ,它使用一个虚拟的 TranslateAnimation 来设置一些布局属性。我使用 Interpolator 计算高度,并将其应用于 TranslateAnimatio
我基本上想将 View 从一个位置移动到另一个位置,而且我还想逐渐增加它的高度,那么我应该使用 setAnimation 还是 startAnimation。 TranslateAnimation t
这个问题已经有答案了: What is a NullPointerException, and how do I fix it? (12 个回答) findViewById() returns nul
我想在调用 segue 之前启动等待动画/显示 UIAlertView,以便用户知道他们必须等待几秒钟,同时处理 segue 并且下一个 ViewController 会填充相关数据并显示! 问题是
我已经使用 将放大动画应用到我的 Imageview myImageView.startAnimation(AnimationUtils.loadAnimation(this,R.anim.zoom_
我正在 Controller.ViewDidLoad 中创建 UIActivityIndicatorView UIActivityIndicatorView spinner = new UIAct
首先声明,以下内容均基于cocos2d-x-2.1.4。 在cocos2d-x的HelloCpp工程中,可以看到在void AppDelegate::applicationDidEnterBackgr
我有一个 UIImageView 扩展,其中包含下载设置图像的方法,该扩展还包含一个 UIActivityIndicatorView,我在加载图像之前将其设置为 View 图像已加载,我从 UII
我是一名优秀的程序员,十分优秀!