我有 3 个选择器,其中一个只包含图像。
所以,对于这个,我必须使用 viewForRow,但对于其他两个是带有标签的常见选择器,我需要 titleForRow,除非我使用 viewForRow,titleForRow 永远不会被调用。
我怎样才能在我的类(class)中同时调用两个代表?
这就是我所拥有的:
- (UIView *)pickerView:(UIPickerView *)thePickerView viewForRow:(NSInteger)row forComponent:(NSInteger)component reusingView:(UIView *)view{
[[[objectPicker subviews] objectAtIndex:0] setHidden:YES];
[[[objectPicker subviews] objectAtIndex:5] setHidden:YES];
[[[objectPicker subviews] objectAtIndex:8] setHidden:YES];
return ; //will be implemented, but this will return the icons
}
- (NSString *)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component{
[[[objectPicker subviews] objectAtIndex:0] setHidden:YES];
[[[objectPicker subviews] objectAtIndex:5] setHidden:YES];
[[[objectPicker subviews] objectAtIndex:8] setHidden:YES];
if (pickerView == self.timePicker) {
return [timeList objectAtIndex:row];
}
else if(pickerView == self.powerPicker) {
return [powerList objectAtIndex:row];
}
}
最佳答案
你不能在同一个委托(delegate)中同时拥有两者。解决方案是只实现 viewForRow:
并为文本列返回一个 UILabel 对象。将 label.text
设置为您在 textForRow:
中返回的字符串。
关于ios - 如何在同一类中为不同的选择器使用 viewForRow 和 titleForRow?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4229186/