gpt4 book ai didi

iphone - UITableView 类似于 gridView

转载 作者:行者123 更新时间:2023-12-01 18:25:22 25 4
gpt4 key购买 nike

我有一个 NSMutableArray,我在其中存储从服务 url 获取的项目并完成解析。我在 UITableView 中显示数组项目,其行为类似于 gridview(每行 4 列,行数取决于数组计数)。这有点像显示一周内所有可用的在线考试时段。所以我必须一个一个地加载每天的时间,如果所有的插槽都是为特定的一天保留的,那么应该显示当天的消息(没有可用的插槽),然后加载下一个tableView 中的数组项。但我只能获得最后一天的可用时段。

我必须采用以下格式:

10/1/2013

10:00 AM 11:00 AM 12:00 PM 1:00 PM
2:00 PM

11/1/2013

11:00 AM 12:00 PM 1:00 PM 2:00 PM

12/1/2013

No slot available

13/1/2013

10:00 AM 11:00 AM 12:00 PM 1:00 PM
2:00 PM 3:00 PM

............

截至目前,我正在使用相同的表格 View 并分别加载特定日期的每个数组项。但我只能获得最后一天的时间

我怎样才能获得这种特定格式?

任何关于使用哪个控件或如何使用同一个 tableView 的建议/建议都是显而易见的。

编辑:
-(void)LoadWeekSlots
{

for(int i=0;i<7;i++)
{

NSCalendar *gregorian = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];

NSDateComponents *offsetComponents = [[NSDateComponents alloc] init];
[offsetComponents setDay:i];
NSDate *nextDate = [gregorian dateByAddingComponents:offsetComponents toDate: [NSDate date] options:0];
[offsetComponents release];
[gregorian release];
NSLog(@"%@",nextDate);

NSDateFormatter *df=[[[NSDateFormatter alloc]init] autorelease];
df.dateFormat = @"yyyy-MM-dd";
getdateinmmformat=[[NSString stringWithFormat:@"%@",[df stringFromDate:nextDate]] componentsSeparatedByString:@""];
NSLog(@"%@",getdateinmmformat);
result=[[getdateinmmformat valueForKey:@"description"] componentsJoinedByString:@""];
weekdayString=[nextDate descriptionWithCalendarFormat:@"%A" timeZone:nil locale:[[NSUserDefaults standardUserDefaults]dictionaryRepresentation]];
NSLog(@"Day :%@",weekdayString);
selectedtableView=i;
[self LoadSlots];
NSLog(@"%@",arr1);
}
}

-(void)LoadSlots{

// calling the service url and taking the values in NSMutableArray (arr1)
[self CheckArray];

}


-(void)CheckArray{


NSMutableArray *yourArray = [[NSMutableArray alloc] init];

for (NSDictionary *dict in arr3) {

NSString *str=[dict valueForKey:@"Code"];

NSString*newstr= [str stringByReplacingOccurrencesOfString:@"," withString:@""];

[yourArray addObject:newstr];

}

BOOL isTheObjectThere = [yourArray containsObject:weekdayString];

if([arr1 count]==0 && isTheObjectThere==YES)
{

displayError =[[UILabel alloc]init];
[displayError setFrame:CGRectMake(0,390,320,200)];
displayError.textAlignment=UITextAlignmentLeft;
displayError.backgroundColor=[UIColor clearColor];
NSString *string1=@" No slot available.";
displayError.text=[NSString stringWithFormat:@"%@ ",string1];
displayError.textColor=[UIColor redColor];
displayError.shadowColor=[UIColor blackColor];
displayError.font=[UIFont fontWithName:@"Verdana-Italic" size:14];
[testscroll addSubview:displayError];
float fscrview =displayError.frame.origin.y + displayError.frame.size.height+ 60;
testscroll.contentSize=CGSizeMake(320, fscrview);

}


else
{
sections=[[NSMutableArray alloc] init];
for(int s=0;s<1;s++)
{
NSMutableArray *section=[[NSMutableArray alloc] init];
for(int i=0;i<[arr1 count];i++)
{
Item *item=[[Item alloc] init];
NSString *eventName=[[arr1 objectAtIndex:i]objectForKey:@"TimeStart"];

item.TimeStart=eventName;
[section addObject:item];

}
[sections addObject:section];

}




self.tableView=[[UITableView alloc]initWithFrame:CGRectMake(0,390,320,[arr1 count]*40) style:UITableViewStylePlain];
self.tableView.delegate = self;
self.tableView.dataSource = self;
self.tableView.scrollEnabled=NO;
[testscroll addSubview:self.tableView];
[self.tableView reloadData];
self.tableView.frame = CGRectMake(self.tableView.frame.origin.x, self.tableView.frame.origin.y, self.tableView.frame.size.width, self.tableView.contentSize.height);
float fscrview = self.tableView.frame.origin.y + self.tableView.frame.size.height + 10;
testscroll.contentSize=CGSizeMake(320, fscrview);
testscroll.scrollEnabled=YES;
}

}

-(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
return 1;
}
-(CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
{
NSMutableArray *sectionItems=[sections objectAtIndex:indexPath.section];
int numRows=[sectionItems count]/4;
if(numRows==0)
{
return 80;
}

else
{

NSArray* items = [sections objectAtIndex:indexPath.section];
int total = [items count];
float f = (float)total /4;
int numberOfGridRows = ceilf(f);
NSLog(@"\n\n Rows :>> %d",numberOfGridRows);
if(numberOfGridRows==1)
{
return numberOfGridRows * 100.0;

}

else if(numberOfGridRows==2)
{
return numberOfGridRows * 70.0;

}
else if(numberOfGridRows==3)
{
return numberOfGridRows * 60.0;

}
else if(numberOfGridRows==4)
{

return numberOfGridRows * 70.0;

}
if(numberOfGridRows>4 && numberOfGridRows<8)
{
return numberOfGridRows * 65.0;


}
else
{
return numberOfGridRows * 40.0 ;
}



}
}
-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *hlCellID=@"hlCellID";

UITableViewCell* hlcell=[tableView dequeueReusableCellWithIdentifier:hlCellID];

if(hlcell == nil)
{
hlcell = [[[UITableViewCell alloc]initWithStyle:UITableViewCellStyleDefault reuseIdentifier:hlCellID]autorelease];

hlcell.accessoryType = UITableViewCellAccessoryNone;
hlcell.selectionStyle = UITableViewCellSelectionStyleNone;
}
int section=indexPath.section;
NSMutableArray *sectionItems=[sections objectAtIndex:section];
int n=[sectionItems count];
int i=0,i1=0;
while(i<n)
{
int yy= 4+i1*34;
int j=0;
for(j=0;j<4;j++)
{
if(i>=n)break;
Item *item=[sectionItems objectAtIndex:i];
CGRect rect=CGRectMake(0+70*j,yy,79,40);
UIButton *button=[[UIButton alloc] initWithFrame:rect];
[button setFrame:rect];
[button setContentMode:UIViewContentModeLeft];
button.titleLabel.font = [UIFont systemFontOfSize:14];
NSString *settitle=[NSString stringWithFormat:@"%@",item.TimeStart];
[button setTitle:settitle forState:UIControlStateNormal];
NSString *tagValue=[NSString stringWithFormat:@"%d%d",indexPath.section+1,i];
button.tag=[tagValue intValue];
[button setTitleColor:[UIColor blackColor] forState:UIControlStateNormal];
[button setShowsTouchWhenHighlighted:YES];
[button addTarget:self action:@selector(buttonPressed:) forControlEvents:UIControlEventTouchUpInside];
[hlcell.contentView addSubview:button];
[button release];
i++;




}
i1=i1+1;
}
return hlcell;

}


- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
{
return [sections count];
}

这是我所做的代码。

最佳答案

尝试我的以下代码中的一些代码...删除一些对您无用的其他代码..
我有这种类型的要求,我用我的波纹管代码和逻辑完成了它......还看到我认为你想要类似的图像......

- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
{
return [_grids count];
}

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
return 1;
}

- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
{
NSArray* items = [_grids objectAtIndex:indexPath.section];

//number of rows in one grid if one row will have 4 items
// float totalRow = ceilf(items.count/4);
int total = [items count];

float f = (float)total /4;
int numberOfGridRows = ceilf(f);
NSLog(@"\n\n Rows :>> %d",numberOfGridRows);
//height of table row
return numberOfGridRows * 36.0 + 120;
}

- (NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section
{
return [NSString stringWithFormat:@"Grid %d", section];
}

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString* cellIdentifier = @"gridCell";

UITableViewCell *gridCell = [tableView dequeueReusableCellWithIdentifier:nil];

if(gridCell == nil)
{
gridCell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:cellIdentifier] autorelease];

gridCell.accessoryType = UITableViewCellAccessoryNone;

gridCell.selectionStyle = UITableViewCellSelectionStyleNone;

}
// UIImageView *img = [[UIImageView alloc]initWithImage:[UIImage imageNamed:@"lion.jpg"]];
// [img setFrame:CGRectMake(0, 0, 320, 120)];
// [gridCell.contentView addSubview:img];

UIImageView *imgUser = [[UIImageView alloc]initWithImage:[UIImage imageNamed:@"noImage.png"]];
[imgUser setFrame:CGRectMake(5, 5, 100, 115)];
[gridCell.contentView addSubview:imgUser];

UILabel *lbl = [[UILabel alloc]init];
lbl.text = @"Dr. P.R. Joshi";
lbl.font = [UIFont fontWithName:@"Helvetica-Bold" size:15];
[lbl setFrame:CGRectMake(110, 5, 200, 31)];
[gridCell.contentView addSubview:lbl];

UILabel *lblAddress = [[UILabel alloc]init];
[lblAddress setFrame:CGRectMake(110, 31, 200, 31)];
lblAddress.text = @"706,Atlanta Tower,Gulbai Tekra,Ahemdabad-007.";
lblAddress.lineBreakMode = UILineBreakModeWordWrap;
lblAddress.numberOfLines = 0;
lblAddress.font = [UIFont fontWithName:@"Helvetica" size:12];
// CGSize sizeToMakeLabel = [lblAddress.text sizeWithFont:lblAddress.font];
lblAddress.frame = CGRectMake(lblAddress.frame.origin.x, lblAddress.frame.origin.y,
200,[self calculateHeightOfTextFromWidth:lblAddress.text :lblAddress.font :200 :UILineBreakModeWordWrap] );

lblAddress.textColor = [UIColor darkGrayColor];

[gridCell.contentView addSubview:lblAddress];

DYRateView *rateView = [[[DYRateView alloc] initWithFrame:CGRectMake(110, lblAddress.frame.origin.y + lblAddress.frame.size.height + 5, 160, 14)] autorelease];
rateView.rate = 4.5;
rateView.alignment = RateViewAlignmentLeft;
[gridCell.contentView addSubview:rateView];

UIImageView *imgArrow = [[UIImageView alloc]initWithImage:[UIImage imageNamed:@"left-arrow-right-md.png"]];
[imgArrow setFrame:CGRectMake(300, 57, 12, 18)];
[gridCell.contentView addSubview:imgArrow];

NSArray* items = [_grids objectAtIndex:indexPath.section];

int imageIndex = 0;

int yOffset = 4;

while (imageIndex < items.count)
{
int yPos = 7 + yOffset * 30;

for(int i = 0; i < 4; ++i)
{
CGRect rect = CGRectMake((0 + i * 80), yPos, 80, 31);

if (imageIndex < [items count]) {

UIImageView* imageView = [self gridImageRect:rect forImage:[items objectAtIndex:imageIndex]];

[gridCell.contentView addSubview:imageView];
[imageView release];

UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom];
button.frame = rect;
button.tag = imageIndex;
[button addTarget:self
action:@selector(btnTemp_Clicked:)
forControlEvents:UIControlEventTouchDown];

[button setTitle:[NSString stringWithFormat:@"Title %d%d%d",indexPath.section,indexPath.row,imageIndex] forState:UIControlStateNormal];
[button.titleLabel setFont:[UIFont fontWithName:@"Helvetica-Bold" size:12]];

// [button.titleLabel setTextColor:[UIColor blueColor]];
[button setTitleColor:[UIColor colorWithPatternImage:[UIImage imageNamed:@"circle03.jpg"]] forState:UIControlStateNormal ];
[button setTitleColor:[UIColor redColor] forState:UIControlStateHighlighted ];

[button setNeedsDisplay];

[gridCell.contentView addSubview:button];

// rect = CGRectMake(((80 * i)-4), (yPos+44), 80, 12);
//
//
//
// UILabel* label = [self descriptionOfImage:imageIndex inRect:rect];
//
// [gridCell.contentView addSubview:label];
//
// [label release];
}
++imageIndex;
}
++yOffset;
}
return gridCell;
}

-(float) calculateHeightOfTextFromWidth:(NSString*) text: (UIFont*)withFont: (float)width :(UILineBreakMode)lineBreakMode
{
[text retain];
[withFont retain];
CGSize suggestedSize = [text sizeWithFont:withFont constrainedToSize:CGSizeMake(width, FLT_MAX) lineBreakMode:lineBreakMode];

[text release];
[withFont release];

return suggestedSize.height;
}

-(IBAction)btnTemp_Clicked:(id)sender{
UIButton *btn = (UIButton *)sender;
NSLog(@"Selected Image : %d Button Title is ==>> %@",btn.tag,btn.titleLabel.text);
}

-(UIImageView *)gridImageRect:(CGRect)rect forImage:(UIImage *)image
{
UIImageView* imageView = [[UIImageView alloc] initWithFrame:rect];
imageView.image = image;

return imageView;
}

-(UILabel *)descriptionOfImage:(int)imageNumber inRect:(CGRect)rect
{
UILabel *label = [[UILabel alloc] initWithFrame:rect];

label.text = [NSString stringWithFormat:@"Image %d", imageNumber + 1];

label.textColor = [UIColor blackColor];

label.backgroundColor = [UIColor clearColor];

label.textAlignment = UITextAlignmentCenter;

label.font = [UIFont fontWithName:@"ArialMT" size:12];

return label;
}
查看此代码输出的屏幕截图...
enter image description here enter image description here
另见下文 友情链接 对于 UIGridView演示和教程..
  • UIGridView
  • GMGridView
    我希望这对你有帮助......
  • 关于iphone - UITableView 类似于 gridView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14251416/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com