Tôi đang cố gắng triển khai thanh tab tùy chỉnh có thể cuộn và có phân trang tại từng mục trên tab. Cho rằng tôi đang sử dụng scrollViewWillEndDragging delegate: withVelocity: targetContentOffset: hoạt động hoàn hảo với một vấn đề.scrollViewWillEndDragging: withVelocity: targetContentOffset: không hoạt động trên các cạnh của UISCrollView
Cách hoạt động phân trang của tôi là, nếu contentOffset gần đúng mục, nó sẽ thay đổi targetContentOffset thành bù của mục đó. Điều tương tự cho phía bên trái.
Vấn đề là, bất cứ khi nào tôi ở nửa bên trái của mục đầu tiên và bên phải cuối cùng (chế độ xem cuộn hoạt động theo chiều ngang), nó phải đi tới ContentOffset 0 và độ lệch nội dung của mục ngoài cùng bên phải (trừ những người trên màn hình), nhưng nó không.
Tôi đã kiểm tra với trình gỡ rối và targetContentOffset-> x thực sự là 0 (trong trường hợp đầu tiên - bên trái của mục ngoài cùng bên trái). Vì vậy, vấn đề là UIScrollView không cuộn ở đó. Tôi bị lạc.
Đây là đại biểu thực hiện của tôi:
- (void)scrollViewWillEndDragging:(UIScrollView *)scrollView
withVelocity:(CGPoint)velocity
targetContentOffset:(inout CGPoint *)targetContentOffset{
NSInteger index = lrintf(targetContentOffset->x/self.tabWidth);
targetContentOffset->x = index * self.tabWidth;
}
Dưới đây là sơ đồ giải thích những gì tôi muốn làm.
|-------|-------|-------|-------|-------|-------|-------|
| | | | | | | |
| | | | | | | |
|_______|_______|_______|_______|_______|_______|_______|
|_______________________________________|
where it is and i scroll it to the left
<----|
|_______________________________________|
where it would stop
|_______________________________________|
where i want it to stop
Tôi cũng gặp phải sự cố này. Bất kỳ cơ hội nào bạn có thể đăng số ID lỗi Apple — hoặc tốt hơn, liên kết tới mục nhập OpenRadar — để hỗ trợ bản thân tôi và những người khác có thể đăng một báo cáo lỗi trùng lặp? (Nó khá nổi tiếng rằng Apple ưu tiên sửa lỗi dựa trên số lượng báo cáo mà họ nhận được.) – Calrion
Chắc chắn. Đó là một bản sao của 10255505 nhưng có vẻ như nó không tồn tại trong OpenRadar. Dù sao nó có vẻ như đã đóng cửa bây giờ, nhưng tôi không biết liệu họ có phát hành bản sửa lỗi hay không. – dvieira