播放器進度條 UISlider 僅顯示進度,禁止用戶拖動修改,但需保持正常可見狀態 (非灰化禁用)。
slider.userInteractionEnabled = NO;
| 屬性 | userInteractionEnabled = NO | enabled = NO |
|---|---|---|
| 用戶交互 | ❌ 忽略觸摸事件 | ❌ 忽略觸摸事件 |
| 外觀 | ✅ **正常顏色、清晰度** | ⚠️ **灰化、降低透明度** (系統默認禁用風格) |
| 進度更新 (代碼) | ✅ setValue:animated: 正常工作 | ✅ 正常工作 |
| 無障礙 | ✅ VoiceOver 可讀取值 | ✅ 可讀取 |
若需進一步區分「可編輯」與「只讀」狀態 (如只讀時隱藏滑塊圖標 thumb):
// 隱藏滑塊 (僅顯示軌跡)
[slider setThumbImage:[UIImage new] forState:UIControlStateNormal];
// 或設置透明圖片
[slider setThumbImage:[UIImage imageNamed:@"transparent_thumb"] forState:UIControlStateNormal];
// 禁止交互
slider.userInteractionEnabled = NO;
slider.isUserInteractionEnabled = false
// 隱藏 thumb
slider.setThumbImage(UIImage(), for: .normal)
userInteractionEnabled = NO (Swift: isUserInteractionEnabled = false)** 是實現「只讀但正常顯示」UISlider 的標準做法。避免使用 enabled = NO 導致的灰化外觀,除非業務明確需要「禁用視覺反饋」。