typedef NS_ENUM(NSInteger, UITableViewCellStyle) { UITableViewCellStyleDefault, // Simple cell with text label and optional image view (behavior of UITableViewCell in iPhoneOS 2.x) UITableViewCellStyleValue1, // Left aligned label on left and right aligned label on right with blue text (Used in Settings) UITableViewCellStyleValue2, // Right aligned label on left with blue text and left aligned label on right (Used in Phone/Contacts) UITableViewCellStyleSubtitle // Left aligned label on top and left aligned label on bottom with gray text (Used in iPod). }; // available in iPhone OS 3.0
iPhone提供了4种基本的表格视图单元格,在SDK 3.0 之后,每个单元格都有3个属性textLabel,detailTextLabel和imageView。
下面一一介绍这4种基本格式:
1、UITableViewCellStyleDefault
该格式提供了一个简单的左对齐的文本标签textLabel和一个可选的图像imageView。如果显示图像,那么图像将在最左边。
这种格式虽然可以设置detailTextLabel,但是不会显示该标签。
2、UITableViewCellStyleSubtitle
该格式与前一种相比,增加了对detailTextLabel的支持,该标签将会显示在textLabel标签的下面,字体相对较小。
3、UITableViewCellStyleValue1
该格式居左显示textLabel,居右显示detailTextLabel,且字体较小。
4、UITableViewCellStyleValue2
该格式居左现实一个小型蓝色主标签textLabel,在其右边显示一个小型黑色副标题详细标签detailTextLabel。
该格式不支持图像
个人感觉,格式1和2使用较多,如果这两种不能满足我的要求,那么就采用定制UITableViewCell的方式。
from:http://www.cnblogs.com/xuling/archive/2012/02/28/2370692.html
1)、arc4random() 比较精确不需要生成随即种子
使用方法 :
通过arc4random() 获取0到x-1之间的整数的代码如下:
int value = arc4random() % x;
获取1到x之间的整数的代码如下:
int value = (arc4random() % x) + 1;
2)、CCRANDOM_0_1() cocos2d中使用 ,范围是[0,1]
使用方法:
float random = CCRANDOM_0_1() * 5; //[0,5] CCRANDOM_0_1() 取值范围是[0,1]
3)、random() 需要初始化时设置种子
使用方法:
srandom(time(NULL));//初始化时,设置下种子就好了
int newValue = random() %10;
- (void)updateAssetsLibrary { loadImgView.hidden = NO; [spinner startAnimating]; //selectVideoBtn .userInteractionEnabled = NO; assetItems = [NSMutableArray arrayWithCapacity:0]; ALAssetsLibrary *assetLibrary = assetsLibrary; [assetLibrary enumerateGroupsWithTypes:ALAssetsGroupAll usingBlock:^(ALAssetsGroup *group, BOOL *stop) { if (group) { [group setAssetsFilter:[ALAssetsFilter allVideos]]; [group enumerateAssetsUsingBlock:^(ALAsset *asset, NSUInteger index, BOOL *stop) { if (asset) { dic = [[NSMutableDictionary alloc] init]; ALAssetRepresentation *defaultRepresentation = [asset defaultRepresentation]; NSString *uti = [defaultRepresentation UTI]; appDelegate.videoURL = [[asset valueForProperty:ALAssetPropertyURLs] valueForKey:uti]; mpVideoPlayer = [[MPMoviePlayerController alloc] initWithContentURL:appDelegate.videoURL]; NSString *title = [NSString stringWithFormat:@"%@ %i", NSLocalizedString(@"Video", nil), [assetItems count]+1]; [self performSelector:@selector(imageFromVideoURL)]; [dic setValue:title forKey:kName]; [dic setValue:appDelegate.videoURL forKey:kURL]; AssetBrowserItem *item = [[AssetBrowserItem alloc] initWithURL:appDelegate.videoURL title:title]; [assetItems addObject:item]; [appDelegate.videoURLArray addObject:dic]; NSLog(@"Video has info:%@",appDelegate.videoURLArray); } NSLog(@"Values of dictonary==>%@", dic); //NSLog(@"assetItems:%@",assetItems); NSLog(@"Videos Are:%@",appDelegate.videoURLArray); } ]; } // group == nil signals we are done iterating. else { dispatch_async(dispatch_get_main_queue(), ^{ //[self updateBrowserItemsAndSignalDelegate:assetItems]; loadImgView.hidden = NO; [spinner stopAnimating]; [loadImgView removeFromSuperview]; //selectVideoBtn .userInteractionEnabled = YES; }); } } failureBlock:^(NSError *error) { NSLog(@"error enumerating AssetLibrary groups %@\n", error); }]; } - (UIImage *)imageFromVideoURL { // result UIImage *image = nil; // AVAssetImageGenerator AVAsset *asset = [[AVURLAsset alloc] initWithURL:appDelegate.videoURL options:nil];; AVAssetImageGenerator *imageGenerator = [[AVAssetImageGenerator alloc] initWithAsset:asset]; imageGenerator.appliesPreferredTrackTransform = YES; // calc midpoint time of video Float64 durationSeconds = CMTimeGetSeconds([asset duration]); CMTime midpoint = CMTimeMakeWithSeconds(durationSeconds/2.0, 600); // get the image from NSError *error = nil; CMTime actualTime; CGImageRef halfWayImage = [imageGenerator copyCGImageAtTime:midpoint actualTime:&actualTime error:&error]; if (halfWayImage != NULL) { // cgimage to uiimage image = [[UIImage alloc] initWithCGImage:halfWayImage]; [dic setValue:image forKey:kImage]; NSLog(@"Values of dictonary==>%@", dic); NSLog(@"Videos Are:%@",appDelegate.videoURLArray); CGImageRelease(halfWayImage); } return image; } - (void)assetsLibraryDidChange:(NSNotification*)changeNotification { [self updateAssetsLibrary]; } - (void)buildAssetsLibrary { assetsLibrary = [[ALAssetsLibrary alloc] init]; ALAssetsLibrary *notificationSender = nil; NSString *minimumSystemVersion = @"4.1"; NSString *systemVersion = [[UIDevice currentDevice] systemVersion]; if ([systemVersion compare:minimumSystemVersion options:NSNumericSearch] != NSOrderedAscending) notificationSender = assetsLibrary; [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(assetsLibraryDidChange:) name:ALAssetsLibraryChangedNotification object:notificationSender]; [self updateAssetsLibrary]; }