Tôi muốn thoát khỏi một vấn đề điểm ảnh trên device.I tôi đang thiết kế một cuốn lịch mà trông giống như dưới đâyLỗi trong việc làm tròn số giá trị dấu chấm để xem bộ sưu tập
Tôi đang sử dụng một UICollectionViewCell cho mục đích này
- (UIEdgeInsets)collectionView:
(UICollectionView *)collectionView layout:(UICollectionViewLayout*)collectionViewLayout insetForSectionAtIndex:(NSInteger)section {
return UIEdgeInsetsMake(0,0,0,0); // top, left, bottom, right
}
- (CGSize)collectionView:(UICollectionView *)collectionView
layout:(UICollectionViewLayout *)collectionViewLayout
sizeForItemAtIndexPath:(NSIndexPath *)indexPath
{
CGFloat collectionViewWidth = (CGRectGetWidth(collectionView.frame)/7);
CGFloat collectionViewHeight = 48;
return CGSizeMake(collectionViewWidth, collectionViewHeight);
}
vấn đề là nếu tôi tăng chiều rộng thậm chí bằng 0,0000001 điểm sau đó số lượng tế bào vẽ trên mỗi dòng là 6 thay vì 7. tôi đã cố gắng tăng UIEdgeInset (bằng 0.00001) cũng nhưng đó là cùng phát hành e. Các thuộc tính cho bố cục luồng được thiết lập phù hợp.
layout.minimumInteritemSpacing = 0.0f;
layout.minimumLineSpacing = 0.0f;
Làm cách nào để làm cho kích thước ô trở nên nhất quán mà không để khoảng trống? Chiều rộng thực tế của ô là 53.571428571428569 (375/7). Nếu tôi làm tròn giá trị 53,58 sau đó tôi có được cái nhìn dưới
bạn có một điểm tốt. Tôi biết rằng việc đặt chiều rộng thành% 7 không giải quyết được sự cố. Tôi đang tìm kiếm sự hiểu biết về giải pháp chuyên sâu hơn về cách UIKit giao dịch với các điểm để chuyển đổi pixel và nếu có cách để ghi đè các hành vi đó trong trường hợp xảy ra lỗi dấu chấm động. –
Tôi gặp phải vấn đề tương tự gần đây (https://stackoverflow.com/questions/44380440/ios-uicollectionview-spacing-precision) Trong trường hợp của tôi, chiều rộng của các ô là 103,5, không nên có vấn đề làm tròn, nhưng tôi vẫn kết thúc có các đường thẳng đứng không mong muốn. Có vẻ như cách tốt nhất để giải quyết vấn đề này là có một khoảng nhỏ giữa tất cả các ô, nhưng đó là một sự thỏa hiệp trên giao diện người dùng. – Stephenye