Hỏi về cách add item vào Collection View trong Swift

Chào cả nhà . Em đang học lập trình ios và muốn tạo một app lịch kip cho người đi làm 2 Ca với 3 kip làm việc. mỗi kip cứ làm
( 4 ngày -> nghỉ 2 -> 4 đêm -> nghỉ 2 -> lặp lại )

Nhưng đến bước này em không biết viết cho các kip cứ 4 ngày lại nghỉ 2 để add vào Cell trong Collectionview dc.


Em xin chân thành cám ơn ạ

1 Like

A post was merged into #1

Cái này dùng chung 1 loại customize cell rồi đổi màu thôi, problem là algorithm tính ngày lặp lại.
Trước tiên analyse requirements kỹ:

“mỗi kip chứ làm 4 ngày lại nghỉ 2 rồi chuyển ca đêm 4 ngày ___> lặp lại”

Vậy là khi bắt đầu user vẫn phải chọn ngày đầu tiên để làm default là ca ngày/đêm, từ mốc này ta tính tiếp thôi:
A) User chọn ngày đầu tiên là ngày làm ca ngày.
1/ Nếu ngày chọn đầu tiên là ca ngày + 4 = ngày nghỉ
2/ Có ngày nghỉ đầu tiên + 2 = ngày làm ca đêm
3/ Có ngày ca đêm + 4 = ngày nghỉ tiếp theo.
B) User chọn ngày đầu tiên là làm ca đêm, tương tự case A mà ngược lại thôi.

Giả sử mình tách riêng algorithm nãy giờ thành 1 func calculateShift(firstDate: String) -> ShiftType
Bạn cần call func này trước cho 1 arrShiftType(tạm có type [ShiftType]) tính trước cho 1 năm đi chẳng hạn, rồi dùng cái này làm DataSource cho collectionView thôi

Trong cellForItemAtIndexPath, lấy ra shiftType tại arrShiftType[indexpath.item] gán cho cái cell -> done.

4 Likes

Đây là lịch gốc ạ . Em muốn nó chạy theo thuật toán này từng tháng 1 vào app

Em xin cám ơn anh đã cho em hướng giải quyết thuật toán này ạ. Anh có thể viết cho em 1 fun để em phân tích rồi học từ đó dc ko ạ, em mới qua swift lên không rành lắm ạ

A có thể cho em xin link fb của a dc ko ạ

Bạn cứ viết objective c đưa lên đay mình fix cho nếu ko quen swift, viết đúng objective c thì convert qua swift rất dễ, chớ algorithm quá clear rồi mà ko làm được thì ko ổn, bài này tính ra y chan mấy bài nhập môn lập trình chớ đâu gì rắc rối nhỉ? à mình ko dùng facebook.

4 Likes

Em mới từ VBA qua lên ko biết thể hiện sao

83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?