for ループは次のように表示されます。これは、ビューで記述したものが読み込まれたため、このページの読み込みに時間がかかります。
for (int i=3; i<[[[[dataDict objectForKey:@"rss"]objectForKey:@"channel"]objectForKey:@"item"]count]; i++)
{
if (i%3==0)
{
x=0;
y++;
}
view=[[UIView alloc]initWithFrame:CGRectMake((x*250)+5, (y*404)+6, 244, 400)];
[view setBackgroundColor:[UIColor whiteColor]];
view.layer.borderColor=[[UIColor whiteColor]CGColor];
view.layer.borderWidth=1.0;
view.layer.cornerRadius = 5;
view.layer.masksToBounds = YES;
[scroller addSubview:view];
titlelabel=[[UILabel alloc]initWithFrame:CGRectMake(10, 10, 230, 20)];
[titlelabel setText:[[[[[[dataDict objectForKey:@"rss"]objectForKey:@"channel"]objectForKey:@"item"]objectAtIndex:i]objectForKey:@"title"]objectForKey:@"text"]];
[titlelabel setNumberOfLines:0];
titlelabel.font=[UIFont boldSystemFontOfSize:15.0f];
[titlelabel setBackgroundColor:[UIColor clearColor]];
[titlelabel sizeToFit];
[view addSubview:titlelabel];
datelabel=[[UILabel alloc]initWithFrame:CGRectMake(10, 62, 190, 20)];
[datelabel setText:[[[[[[dataDict objectForKey:@"rss"]objectForKey:@"channel"]objectForKey:@"item"]objectAtIndex:i]objectForKey:@"title"]objectForKey:@"text"]];
[datelabel setNumberOfLines:0];
datelabel.font=[UIFont fontWithName:@"arial" size:12.0f];
[datelabel setBackgroundColor:[UIColor clearColor]];
[datelabel sizeToFit];
[view addSubview:datelabel];
NSData *data=[[NSData alloc]initWithContentsOfURL:[NSURL URLWithString:[[[[[[[dataDict objectForKey:@"rss"]objectForKey:@"channel"]objectForKey:@"item"]objectAtIndex:i]objectForKey:@"image"]objectForKey:@"text"]stringByAddingPercentEscapesUsingEncoding: NSUTF8StringEncoding]]];
NSLog(@"data= %@",data);
if (data==NULL ||[[[[[[[dataDict objectForKey:@"rss"]objectForKey:@"channel"]objectForKey:@"item"]objectAtIndex:i]objectForKey:@"image"]objectForKey:@"text"] isEqualToString:@""])
{
textview=[[UITextView alloc]initWithFrame:CGRectMake(2,80, 238, 386)];
[textview setText:[[[[[[dataDict objectForKey:@"rss"]objectForKey:@"channel"]objectForKey:@"item"]objectAtIndex:i]objectForKey:@"title"]objectForKey:@"text"]];
[textview setFont:[UIFont fontWithName:@"ArialMT" size:14]];
[textview setDelegate:self];
[view addSubview:textview];
}
else
{
imageview=[[UIImageView alloc]initWithFrame:CGRectMake(7, 80, 230, 150)];
[imageview setImage:[UIImage imageWithData:data]];
[view addSubview:imageview];
textview=[[UITextView alloc]initWithFrame:CGRectMake(5, 240, 238, 200)];
[textview setText:[[[[[[dataDict objectForKey:@"rss"]objectForKey:@"channel"]objectForKey:@"item"]objectAtIndex:i]objectForKey:@"title"]objectForKey:@"text"]];
[textview setFont:[UIFont fontWithName:@"ArialMT" size:14]];
[textview setDelegate:self];
[view addSubview:textview];
}
}
ここで問題になるのは、サーバーから毎回取得する画像であるため、これが遅くなるため、遅延読み込みとして行う方法を提案してください....
前もって感謝します