[Video Summary] Ch. 3.2 using scaleEffect, spring, and withAnimation to animate Bip The Guy in SwiftUI
Mô tả nhanh
Video này hướng dẫn cách sử dụng scaleEffect, spring và withAnimation để tạo hiệu ứng nảy cho hình ảnh khi chạm vào trong SwiftUI.
Video
Mô tả chi tiết
Video này hướng dẫn cách sử dụng scaleEffect, spring và withAnimation để tạo hiệu ứng nảy cho hình ảnh khi chạm vào trong SwiftUI.
Các bước thực hiện:
- Tạo biến
scale:- Khai báo biến
@State private var scale = 1.0để lưu giá trị tỉ lệ (scale) của hình ảnh. Ban đầu, scale bằng 1.0 (kích thước gốc).
- Khai báo biến
- Sử dụng
scaleEffectmodifier:- Thêm modifier
.scaleEffect(scale)vàoImageview. Modifier này cho phép thay đổi kích thước của view bằng cách nhân với giá trịscale.
- Thêm modifier
- Thử nghiệm với
scaleEffect:- Trong
onTapGesture, thử tăng giá trịscalelên 0.1 mỗi khi chạm vào. Điều này làm hình ảnh lớn dần lên, nhưng hiệu ứng chưa được mượt mà.
- Trong
- Sử dụng
animationmodifier:- Thêm modifier
.animation(.default, value: scale)sauonTapGesture. Điều này giúp tạo animation khi giá trịscalethay đổi. Tuy nhiên, hiệu ứng mặc định không phải là nảy.
- Thêm modifier
- Sử dụng animation
.spring():- Thay
.defaultbằng.spring()trong animation modifier để có hiệu ứng nảy. Tuy nhiên, mặc định hiệu ứng nảy có vẻ chưa rõ ràng.
- Thay
- Tùy chỉnh animation
.spring():- Thêm các tham số
responsevàdampingFractionvào.spring()để tùy chỉnh tốc độ và độ nảy của animation.response: Tốc độ của spring (giá trị càng lớn, tốc độ càng chậm).dampingFraction: Độ nảy của spring (giá trị càng nhỏ, độ nảy càng cao).
- Thử nghiệm với các giá trị khác nhau để đạt được hiệu ứng mong muốn.
- Thêm các tham số
- Sử dụng
withAnimation:-
Xóa animation modifier
.animation -
Tạo biến
@State private var animateImage = trueđể theo dõi trạng thái hình ảnh (scale 1.0 hoặc 0.9) -
Sửa đổi
scaleEffectvới toán tử 3 ngôi:.scaleEffect(animateImage ? 1.0 : 0.9). NếuanimateImagelà true, scale là 1.0 (100%), ngược lại là 0.9 (90%). -
Trong
onTapGesture,- Đặt
animateImage = falseđể thu nhỏ hình ảnh xuống 90% ngay lập tức. - Sử dụng
withAnimationvới animation.spring()để đưa hình trở lại 100% kích thước bằng animation nảy.- Bên trong
withAnimationđặtanimateImage = true;.
- Bên trong
- Đặt
-
Thử nghiệm và cảm nhận sự thay đổi.
Giải thích: Khi chạm vào hình, hình ảnh sẽ thu nhỏ về 90% ngay lập tức, sau đó
withAnimationsẽ thực hiện chuyển đổi về 100% với hiệu ứng nảy, tạo hiệu ứng đẹp mắt.
-
Chúc bạn luôn học tập hiệu quả!