我正在开发一个Apple Watch应用程序,我在其中调用一个需要一些时间来执行的API,因此为了显示用户进程,我需要显示Activity Indicator。我正在努力找到解决方案,因为Apple Watch中没有包含活动指示器。一种解决方案是在我们开始流程时拍摄图像和动画图像,并在我们得到响应时隐藏但是有没有更好的解决方案,因为我们需要添加多个图像?
答案 0 :(得分:0)
不幸的是,WatchKit中没有活动指示器界面元素。您可以使用您描述的技术创建自己的。也就是说,在等待响应时取消隐藏并开始动画图像序列,并在操作完成时隐藏它。
这与我在自己的Watch应用程序中使用的技术完全相同。在我的情况下,我加载了4张图像,因此有4个独特的活动指示器图像在检索图像时“旋转”。
答案 1 :(得分:0)
使用WKInterfaceImage
这样创建自定义活动指标;
IBOutlet WKInterfaceImage *animatedImage;
现在按WKInterfaceImage
Images.xcassets
的动画顺序添加动画
隐藏和取消隐藏活动指标的方法:
-(void)showActivityIndicator:(BOOL)yesOrNo
{
if (yesOrNo)
{
//unhide
[self.animatedImage setHidden:NO];
// Uses images in WatchKit app bundle.
[self.animatedImage setImageNamed:@"ActInd"];
[self.animatedImage startAnimating];
}
else
{
[self.animatedImage stopAnimating];
//hide
[self.animatedImage setHidden:YES];
}
}
答案 2 :(得分:0)
我们可以使用WKInterfaceImage设置图像spinner@2x1.png,然后使用startAnimatingWithImagesInRange
动画图像现在在Images.x cassets中的WKInterfaceImage中按顺序添加动画图像 喷丝@ 2x1.png,旋@ 2x2.png ..... spinner@2x40.png
然后使用以下方法
NSRange model = NSMakeRange(0, 40);
/* set Image to ImageView */
[self.spinnerImage setImageNamed:@"spinner@2x1.png"];
/* set repeat count 0 for continues rotation */
[self.spinnerImage startAnimatingWithImagesInRange:model
duration:1.0
repeatCount:0];
这种方法有效但不平滑,如果需要在视图中心设置,那么图像需要首先隐藏然后取消隐藏和动画图像,同时进行处理,并在我们得到响应后再次隐藏,如果它们的多视图那么它变得忙碌有没有办法在所有视图上方添加图像或创建动态活动指标,以便我们添加任何我们需要的地方
答案 3 :(得分:0)
“WatchKit has no UI control like
{ActivityIndicator {1}} WKInterfaceImage`。
您可以在此stackoverflow-link上找到更多详细信息。