zoukankan      html  css  js  c++  java
  • Cocoa touch(九):UIPickerView

    UIPickerView,使用UIPickerViewDataSource来配置数据,UIPickerViewDelegate来控制内容。

    @interface UIPickerView : UIView <NSCoding, UITableViewDataSource>
    @property(nonatomic,assign) id<UIPickerViewDataSource> dataSource;                // default is nil. weak reference
    @property(nonatomic,assign) id<UIPickerViewDelegate>   delegate;                  // default is nil. weak reference
    @property(nonatomic)        BOOL                       showsSelectionIndicator;   // default is NO
    
    // info that was fetched and cached from the data source and delegate
    @property(nonatomic,readonly) NSInteger numberOfComponents;
    - (NSInteger)numberOfRowsInComponent:(NSInteger)component;
    - (CGSize)rowSizeForComponent:(NSInteger)component;
    
    // returns the view provided by the delegate via pickerView:viewForRow:forComponent:reusingView:
    // or nil if the row/component is not visible or the delegate does not implement 
    // pickerView:viewForRow:forComponent:reusingView:
    - (UIView *)viewForRow:(NSInteger)row forComponent:(NSInteger)component;
    
    // Reloading whole view or single component
    - (void)reloadAllComponents;
    - (void)reloadComponent:(NSInteger)component;
    
    // selection. in this case, it means showing the appropriate row in the middle
    - (void)selectRow:(NSInteger)row inComponent:(NSInteger)component animated:(BOOL)animated;  // scrolls the specified row to center.
    
    - (NSInteger)selectedRowInComponent:(NSInteger)component;                                   // returns selected row. -1 if nothing selected
    
    @end
    
    
    @protocol UIPickerViewDataSource<NSObject>
    @required
    
    // returns the number of 'columns' to display.
    - (NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView;
    
    // returns the # of rows in each component..
    - (NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component;
    @end
    
    
    @protocol UIPickerViewDelegate<NSObject>
    @optional
    
    // returns width of column and height of row for each component. 
    - (CGFloat)pickerView:(UIPickerView *)pickerView widthForComponent:(NSInteger)component;
    - (CGFloat)pickerView:(UIPickerView *)pickerView rowHeightForComponent:(NSInteger)component;
    
    // these methods return either a plain NSString, a NSAttributedString, or a view (e.g UILabel) to display the row for the component.
    // for the view versions, we cache any hidden and thus unused views and pass them back for reuse. 
    // If you return back a different object, the old one will be released. the view will be centered in the row rect  
    - (NSString *)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component;
    - (NSAttributedString *)pickerView:(UIPickerView *)pickerView attributedTitleForRow:(NSInteger)row forComponent:(NSInteger)component NS_AVAILABLE_IOS(6_0); // attributed title is favored if both methods are implemented
    - (UIView *)pickerView:(UIPickerView *)pickerView viewForRow:(NSInteger)row forComponent:(NSInteger)component reusingView:(UIView *)view;
    
    - (void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component;
    
    @end
  • 相关阅读:
    3089:爬楼梯
    7592:求最大公约数问题
    JVM中内存回收深入分析,各种垃圾收集器
    PKU 1064 Cable master
    【面试&笔试】ASP.NET的相关问题
    1027. Colors in Mars (20) PAT
    DB_WRITER_PROCESSES与LOG_ARCHIVE_MAX_PROCESSES
    fedora下体验gentoo安装
    一个整数数组里面,除了两个数之外,其他的数字都出现了两次,写一个程序找出这两个数
    [置顶] export命令-linux
  • 原文地址:https://www.cnblogs.com/iprogrammer/p/3252693.html
Copyright © 2011-2022 走看看