Tôi đang cố gắng tạo UISlider có đường mỡ. Tôi đã thử this, và nó gần như hoạt động. Tuy nhiên, khi UISlider được hiển thị lần đầu tiên, thanh theo dõi là bình thường. Chỉ khi nó được một sự kiện liên lạc thì nó càng dày hơn.Làm thế nào để làm cho UISlider dày hơn khi nó được hiển thị lần đầu tiên?
Đây là mã tôi bổ sung vào lớp con của tôi về UISlider, theo khuyến cáo:
- (CGRect)trackRectForBounds:(CGRect)bounds
{
return bounds;
}
Tôi không hiểu cách làm việc này, vì vậy tôi không thể tìm ra lý do tại sao nó không làm việc một cách hoàn hảo. Dưới đây là các câu hỏi của tôi:
- Tính năng này hoạt động như thế nào?
- Làm cách nào để kiểm soát độ dày của đường đi?
- Làm cách nào để tôi có thể ảnh hưởng đến bản nhạc khi bản vẽ UISlider đầu tiên được vẽ?
Tất nhiên, câu hỏi thứ ba là quan trọng nhất, mặc dù câu hỏi thứ ba sẽ giúp tôi hiểu rõ hơn.
Một điều khác cần cân nhắc: khi nó được hiển thị đầu tiên, tôi giấu ngón tay cái:
[slider setThumbImage:[[UIImage alloc] init] forState:UIControlStateNormal];
Khi người dùng chạm vào thanh trượt, tôi hiển thị các ngón tay cái như thế này:
[slider setThumbImage:nil forState:UIControlStateNormal];
tôi đề cập đến điều này bởi vì tôi tự hỏi nếu đó là bằng cách nào đó can thiệp vào ma thuật trackRectForBounds.
Cảm ơn!
Đẹp - câu trả lời tuyệt vời. Không biết cách bạn biết về "triển khai mặc định" trong câu hỏi 1, nhưng điều đó giải thích mọi thứ - cảm ơn! – Bob
Đáp ứng stackoverflow điển hình. – benjaminhallock
@benjaminhallock Có gì sai với câu trả lời của tôi? –