国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統 > iOS > 正文

iOS中創建表格類視圖WBDataGridView的實例代碼

2020-07-26 02:56:55
字體:
來源:轉載
供稿:網友

項目中創建表格, 引用頭文件

#import "WBDataGridView.h"- (void)viewDidLoad{  [superviewDidLoad];  // Do any additional setup after loading the view.  self.view.backgroundColor = [UIColorwhiteColor];  CGFloat margin = 10.f;  CGFloat width = self.view.frame.size.width -2*margin;  // - 添加表格 - 兩列  WBDataGridView *DataGrid = [[WBDataGridViewalloc] initWithFrame:CGRectMake(margin,4*margin , width, 0)                            andColumnsWidths:@[@(width*0.4),@(width*0.6)]];  DataGrid.roundCorner = YES;  [DataGrid addRecord:@[@"姓名",@"dylan_lwb_"]];  [DataGrid addRecord:@[@"性別",@"男"]];  [DataGrid addRecord:@[@"電話",@"110119120"]];  [DataGrid addRecord:@[@"郵箱",@"dylan_lwb@163.com"]];  [self.viewaddSubview:DataGrid];  // - 添加表格 - 多列  WBDataGridView *MoreDataGrid = [[WBDataGridViewalloc]initWithFrame:CGRectMake(margin,CGRectGetMaxY(DataGrid.frame) +2*margin , width, 0)                              andColumnsWidths:@[@(width*0.2),@(width*0.2),@(width*0.2),@(width*0.4)]];  MoreDataGrid.roundCorner = YES;  [MoreDataGrid addRecord:@[@"姓名",@"姓名",@"姓名",@"dylan_lwb_"]];  [MoreDataGrid addRecord:@[@"性別",@"性別",@"性別",@"男"]];  [MoreDataGrid addRecord:@[@"電話",@"電話",@"電話",@"110119120"]];  [MoreDataGrid addRecord:@[@"郵箱",@"郵箱",@"郵箱",@"dylan_lwb@163.com"]];  [self.viewaddSubview:MoreDataGrid];}// WBDataGridView.h #import <UIKit/UIKit.h>extern NSString *const SwitchButtonString;@interface WBDataGridView : UIView@property (retain,nonatomic) NSArray *columnsWidths;@property (assign,nonatomic) NSUInteger lastRowHeight;@property (retain,nonatomic) UIImage *selectedImage;@property (retain,nonatomic) UIImage *unselectedImage;@property (assign,nonatomic) BOOL roundCorner;- (id)initWithFrame:(CGRect)frame andColumnsWidths:(NSArray*)columns;- (void)addRecord:(NSArray*)record;- (NSUInteger)selectedIndex;@end// WBDataGridView.m #import "WBDataGridView.h"NSString * const SwitchButtonString =@"SwitchButtonString";@interface WBDataGridView ()@property (assign,nonatomic) NSUInteger numRows;@property (assign,nonatomic) NSUInteger dy;@property (retain,nonatomic) NSMutableArray *switchButtons;@end@implementation WBDataGridView- (id)initWithFrame:(CGRect)frame andColumnsWidths:(NSArray*)columns{  self = [superinitWithFrame:frame];  if (self)  {    self.numRows =0;    self.columnsWidths = columns;    self.dy =0;    self.numRows =0;    self.switchButtons = [NSMutableArrayarray];  }  return self;}- (void)addRecord: (NSArray*)record{  if(record.count !=self.columnsWidths.count)  {    NSLog(@"!!! Number of items does not match number of columns. !!!");    return;  }  self.lastRowHeight =42;  uint dx = 0;  NSMutableArray* labels = [NSMutableArrayarray];  // - create the items/columns of the row  for(uint i=0; i<record.count; i++)  {    float colWidth = [[self.columnsWidthsobjectAtIndex:i] floatValue];//colwidth as given at setup    CGRect rect = CGRectMake(dx, self.dy, colWidth,self.lastRowHeight);    // - adjust X for border overlapping between columns    if(i>0)    {      rect.origin.x -= i;    }    NSString *oneRecord = [record objectAtIndex:i];    if ([oneRecord isEqualToString:SwitchButtonString])    {      // - set the switch button string as empty, create a label to adjust a cell first, then add the switch upon the label      oneRecord = @"";    }    UILabel* col1 = [[UILabelalloc] init];    [col1.layersetBorderColor:[[UIColorcolorWithWhite:0.821alpha:1.000]CGColor]];    [col1.layer setBorderWidth:1.0];    col1.font = [UIFontfontWithName:@"Helvetica"size:self.numRows ==0 ? 14.0f :12.0f];    col1.textColor = [UIColordarkGrayColor];    col1.frame = rect;    // - round corner    if ([selfisRoundCorner:i])    {      col1.layer.cornerRadius =5;      col1.layer.masksToBounds =YES;    }    // - set left reght margins&alignment for the label    NSMutableParagraphStyle *style = [[NSParagraphStyledefaultParagraphStyle]mutableCopy];    style.alignment =NSTextAlignmentCenter;    NSAttributedString *attrText = [[NSAttributedStringalloc]initWithString:oneRecordattributes:@{NSParagraphStyleAttributeName : style}];    col1.lineBreakMode =NSLineBreakByCharWrapping;    col1.numberOfLines = 0;    col1.attributedText = attrText;    [col1 sizeToFit];    // - used to find height of longest label    CGFloat h = col1.frame.size.height +10;    if(h > self.lastRowHeight){      self.lastRowHeight = h;    }    // - make the label width same as columns's width    rect.size.width = colWidth;    col1.frame = rect;    [labels addObject:col1];    // - used for setting the next column X position    dx += colWidth;  }  // - make all the labels of same height and then add to view  for(uint i=0; i<labels.count; i++)  {    UILabel* tempLabel = (UILabel*)[labelsobjectAtIndex:i];    CGRect tempRect = tempLabel.frame;    tempRect.size.height =self.lastRowHeight;    tempLabel.frame = tempRect;    [self addSubview:tempLabel];  }  // - add the switch button at the first column in current row  if ([record.firstObjectisEqualToString:SwitchButtonString])  {    UILabel *firstlabel = labels.firstObject;    UIButton *oneSwitchButton = [[UIButtonalloc] initWithFrame:CGRectMake(0,0, [self.columnsWidths.firstObjectintegerValue], 40)];    oneSwitchButton.center = firstlabel.center;    [oneSwitchButton addTarget:selfaction:@selector(tapedSwitchButton:)forControlEvents:UIControlEventTouchUpInside];    [oneSwitchButton setBackgroundImage:self.selectedImageforState:UIControlStateSelected];    [oneSwitchButton setBackgroundImage:self.unselectedImageforState:UIControlStateNormal];    [self.switchButtonsaddObject:oneSwitchButton];    // - default selected first row button    if (self.switchButtons.firstObject == oneSwitchButton)    {      oneSwitchButton.selected = YES;    }    [self addSubview:oneSwitchButton];  }  self.numRows++;  // - adjust Y for border overlapping beteen rows  self.dy +=self.lastRowHeight-1;  CGRect tempRect = self.frame;  tempRect.size.height =self.dy;  self.frame = tempRect;}- (void)tapedSwitchButton:(UIButton *)button{  button.selected = !button.selected;  [self.switchButtonsenumerateObjectsUsingBlock:^(id obj,NSUInteger idx, BOOL *stop) {    UIButton *oneButton = obj;    if (oneButton != button)    {      oneButton.selected = NO;    }  }];}- (NSUInteger)selectedIndex{  __block NSUInteger index =0;  [self.switchButtonsenumerateObjectsUsingBlock:^(id obj,NSUInteger idx, BOOL *stop) {    UIButton *oneButton = obj;    if (oneButton.selected ==YES)    {      index = idx;      *stop = YES;    }  }];  return index;}- (BOOL)isRoundCorner:(NSInteger)row{  return NO;}@end

以上所述是小編給大家介紹的iOS中創建表格類視圖WBDataGridView的實例代碼,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對武林網網站的支持!

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 波密县| 黔东| 甘肃省| 汶上县| 南漳县| 毕节市| 灌南县| 客服| 新乐市| 利辛县| 鄱阳县| 宁阳县| 高密市| 新干县| 门头沟区| 本溪| 左贡县| 揭西县| 车险| 都昌县| 安丘市| 勐海县| 山东| 达拉特旗| 固阳县| 商水县| 潞西市| 宁南县| 莫力| 理塘县| 卓尼县| 乐至县| 阳信县| 永登县| 平阴县| 甘谷县| 甘谷县| 沙雅县| 保山市| 清涧县| 梧州市|