UILabel
YES
için düzeltmeleri vurgulayarak konu hakkındaki userInteractionEnabled
özelliğinin ayarlanması, ama aynı zamanda dokundu satırı seçmek için autoscrolling dan UIPickerView
devre dışı bırakır. Eğer vurgulama davranışı devre dışı, ama UIPickerView
'ın varsayılan autoscrolling işlevselliğini korumak istiyorsanız
, UIPickerView
içerdiği UITableCell
durumlarda setShowSelection
işlevini çağırın. -
#import <UIKit/UIKit.h>
@interface PickerViewLabel:UILabel
{
}
@end
PickerViewLabel
PickerViewLabel.h: Bunu yapmanın bir yolu, aşağıdakine benzer UILabel
sınıf alt sınıf olduğunu.m - O
#import "PickerViewLabel.h"
@implementation PickerViewLabel
- (void)didMoveToSuperview
{
if ([[self superview] respondsToSelector:@selector(setShowSelection:)])
{
[[self superview] performSelector:@selector(setShowSelection:) withObject:NO];
}
}
@end
, daha önce pickerView:viewForRow:forComponent:reusingView:
içinde UILabel
bir örneğini dönen olmuştu, PickerViewLabel
bir örneğini döndürür. Örnek olarak, Doug kodunu kullanarak 'UILabel
' ile 'PickerViewLabel
' arasındaki tüm durumları değiştirirsiniz. Sadece pickerRowLabel.userInteractionEnabled = YES;
satırını kaldırmayı unutmayın.
ShowSelectionIndicator, mavi çubuğun, seçici tarafından döndürülen değer üzerinde gösterilmesinden sorumludur. Maalesef alttaki UITableViewCell yapısıyla ilgisi yok. – Jon