如何从 Swift UI制作动画Text
或TextField
视图?
通过动画我的意思是,当文本更改时,它会“计数”。
例如,给定一些标签,如何创建动画,当我将标签文本设置为“100”时,它会从 0 上升到 100。我知道这在 UIKit 中使用图层和 CAAnimations 是可能的,但.animation()
在 Swift UI 中使用该函数并且更改 a Text
or的文本TextField
在动画方面似乎没有任何作用。
我已经查看了Animatable
协议及其相关animatableData
属性,但它似乎Text
既不TextField
符合也不符合这一点。我正在尝试创建一个计数的标签,因此给定一些值,假设Double
对该值的更改将被跟踪,要么使用@State
or@Binding
然后Text
orTextField
将根据值对其内容(实际字符串文本)进行动画处理达到它的设定。
编辑:
为了更清楚,我想重新创建一个动画时看起来像这样的标签:
想知道如何为Swift UI视图创建修饰符吗?
例如,假设我有一些这样定义的视图:
struct LabelView: View {
let font1: Font = .header
let font2: Font = .body
var body: Some View {
// two views, where one uses font1 and other uses font2
}
}
Run Code Online (Sandbox Code Playgroud)
如何创建一个允许类似以下内容的修饰符:
LabelView()
.font1(.callout)
.font2(.body)
Run Code Online (Sandbox Code Playgroud)
我正在尝试学习如何以苹果公司通过Swift UI推动的声明性方式编写API,但是似乎文档还不完善。我试过创建某种类型,ViewModifier
但是我不太确定该怎么做,因为它需要我返回_ModifiedContent<_, _>
并且不确定如何执行。基本上,可以使用声明性语法(如内置SwiftUI视图中的语法)来修改视图的属性。
我在这里查看了这个问答:GoogleApiClient正在抛出"GoogleApiClient尚未连接"之后onConnected函数被调用
因为它似乎与我所经历的相似,但事实并非如此.该用户的问题是他们在onStart()方法中声明了他们的api客户端,我在onCreate()方法中创建了我的答案.然而,我仍然得到同样的错误.
以下是我对这三种方法的代码:
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
/* Butter knife creates the variables */
ButterKnife.bind(this);
/* Startup location services */
locationRequest = LocationRequest.create()
.setPriority(LocationRequest.PRIORITY_HIGH_ACCURACY)
.setInterval(10 * 1000) // 10 seconds, in milliseconds
.setFastestInterval(1 * 1000); // 1 second, in milliseconds
mGoogleApiClient = new GoogleApiClient.Builder(this)
.addConnectionCallbacks(this)
.addOnConnectionFailedListener(this)
.addApi(LocationServices.API)
.build();
progressBar.setVisibility(View.INVISIBLE);
refreshImageView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
getForecast();
}
});
}
@Override
protected void onStart() {
super.onStart();
mGoogleApiClient.connect();
Log.i("Connected!!!", "WERE CONNECTED");
}
@Override
protected void …
Run Code Online (Sandbox Code Playgroud) 不熟悉SwiftUI,并且不熟悉此新框架的事实。我想知道是否有人熟悉如何Path
在SwiftUI中设置动画。
例如,给定一个视图,可以这样简单地说RingView
:
struct RingView : View {
var body: some View {
GeometryReader { geometry in
Group {
// create outer ring path
Path { path in
path.addArc(center: center,
radius: outerRadius,
startAngle: Angle(degrees: 0),
endAngle: Angle(degrees: 360),
clockwise: true)
}
.stroke(Color.blue)
// create inner ring
Path { path in
path.addArc(center: center,
radius: outerRadius,
startAngle: Angle(degrees: 0),
endAngle: Angle(degrees: 180),
clockwise: true)
}
.stroke(Color.red)
.animation(.basic(duration: 2, curve: .linear))
}
}
.aspectRatio(1, contentMode: .fit)
}
}
Run Code Online (Sandbox Code Playgroud)
显示的内容是:
现在,我想知道如何对内圈进行动画处理,即蓝线内的红线。我想要做的动画将是一个简单的动画,其中路径从头开始出现并遍历到结束。 …