Tôi đang triển khai UISlider mà người dùng có thể thao tác để đặt khoảng cách. Tôi chưa bao giờ sử dụng CocoaTouch UISlider, nhưng đã sử dụng các thanh trượt khung khác, thường có một biến để đặt thuộc tính "bước" và "trợ giúp" khác.Làm thế nào để làm cho đầu ra UISlider đẹp tròn số theo cấp số nhân?
Tài liệu cho UISlider chỉ giao dịch với giá trị cực đại và cực đại, và đầu ra luôn luôn là 6 phẩy thập phân với mối quan hệ tuyến tính với vị trí của "thanh trượt nob". Tôi đoán tôi sẽ phải thực hiện từng bước chức năng mong muốn.
Đối với người dùng, giá trị tối thiểu/tối đa từ 10 m đến 999 Km, tôi đang cố gắng triển khai điều này theo cách theo cấp số nhân, điều đó sẽ cảm thấy tự nhiên đối với người dùng. I E. người dùng trải nghiệm cảm giác kiểm soát các giá trị, lớn hay nhỏ. Ngoài ra, "đầu ra" có giá trị hợp lý. Giá trị như 10m 200m 2.5km 150 km, vv thay vì 1.2342356 m hoặc 108.93837756 km.
Tôi muốn kích thước bước tăng 10m trong 200m đầu tiên, sau đó có thể lên tới 50m đến 500m, sau đó khi vượt qua giá trị 1000 m, nó bắt đầu đối phó với Kilômét, do đó, đó là bước kích thước = 1 km cho đến 50 km, sau đó có thể 25 km bước vv
Bất kỳ cách nào tôi đi về điều này tôi sẽ làm rất nhiều làm tròn và rất nhiều tính toán được bọc trong một forrest của báo cáo if và NSString/Số chuyển đổi , mỗi lần người dùng di chuyển thanh trượt chỉ một chút.
Tôi đã hy vọng một người nào đó có thể cho tôi mượn một chút cảm hứng/giúp toán hoặc làm cho tôi nhận thức được cách tiếp cận gọn gàng hơn để giải quyết vấn đề này.
Ý tưởng cuối cùng của tôi là điền và mảng với một giá trị chuỗi 100, sau đó có giá trị int thanh trượt tương ứng với một chuỗi, điều này không phải là rất linh hoạt, nhưng có thể thực hiện được.
Cảm ơn bạn đã hỗ trợ trước :)
để bây giờ tôi sử dụng Số táo để tạo số thực mà tôi muốn (bằng cách nhập một vài số, hãy chọn và kéo. Điều này làm cho số tạo ra các số trong cùng một khoảng thời gian) Tôi đã làm khoảng 75 con số. Sau đó, tôi xuất dưới dạng CSV, chạy nó qua Textmate và thực hiện một số regexp để lấy các số như chuỗi @ "number", Dán số vào một mảng và có thanh trượt kéo chúng ra: \t NSInteger numberLookup = lroundf ([slider giá trị]); \t NSString * distanceString = [sliderNumbers objectAtIndex: numberLookup]; Tôi đặt thanh trượt tối thiểu là 0 và tối đa là [số trượt trượt]. Tôi vẫn muốn nghe về ý tưởng :) – RickiG