UItable的cell高度随着文本的噶双手和图片的噶偶自动变换, 沙盒机制, iOS拨打电话, iOS汉字转拼音

//主要知识点:
当创建多个Button时,而又每个Button触发的事件又是不同,那么可以通过
 SEL selector = NSSelectorFromString(methods[i]);//转换

iOS打电话DEMO
#pragma mark - AddressBookCellDelegate  
- (void)didClickCallButtonAtIndexPath:(NSIndexPath *)indexPath  
{  
    //可以实现拨打前弹出提示。并且拨打完以后会回到原来的应用  
        NSDictionary *dic = self.names[self.titles[indexPath.section]][indexPath.row];  
    NSString *phone = dic[@"phoneNumber"];  
    NSString *str=[NSString stringWithFormat:@"tel:%@", phone];  
    UIWebView *callWebview = [[UIWebView alloc] init];  
    [callWebview loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:str]]];  
    [self.view addSubview:callWebview];  
    [callWebview release];  
}  

汉字转拼音Demo
- (NSString *)pinYin
{
    //方式一
   //先转换为带声调的拼音
    NSMutableString *str = [self mutableCopy];
   CFStringTransform((CFMutableStringRef)str,NULL, kCFStringTransformMandarinLatin,NO);
   //再转换为不带声调的拼音
   CFStringTransform((CFMutableStringRef)str,NULL, kCFStringTransformStripDiacritics,NO);
    return str;
      //方式二 (简单明了,易于使用,一行代码 方便他人)
//    return [ChineseToPinyin pinyinFromChiniseString:self];
}
//补充:
//获取拼音首字母
- (NSString *)firstCharactor
{
   //1.先传化为拼音
    NSString *pinYin = [self.pinYinuppercaseString];
   //2.获取首字母
    return [pinYin substringToIndex:1];
}

iOS自动获取Lable的高度DEMO
//定义宏:
#define kFontSize                       14
#define kPhotoCell_Width                300
#define kPhotoCell_MarginBetween        3
#define kPhotoCell_TitleLabel_Height       25
//方法:
+ (CGFloat)heightForRowWithModel:(PhotoInfo *)photoInfo
{
    //1.图片的高度
    //让图片等比例缩放
    //(1)获取图片
    UIImage *image = [UIImage imageWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"TSummer" ofType:@"png"]];
    //(2)计算图片的高度
    CGFloat imageHeight = [self heightForImage:image];
    //2.文本的高度
    CGFloat textHeight = [self heightForText:photoInfo.introduction];
    //3.返回cell 的总高度
    return kPhotoCell_TitleLabel_Height + imageHeight + textHeight + 4 * kPhotoCell_MarginBetween;
}
//单独计算图片的高度
+ (CGFloat)heightForImage:(UIImage *)image
{
    //(1)获取图片的大小
    CGSize size = image.size;
    //(2)求出缩放比例
    CGFloat scale = kPhotoCell_Width / size.width;
    CGFloat imageHeight = size.height * scale;
    return imageHeight;
}
//单独计算文本的高度
+ (CGFloat)heightForText:(NSString *)text
{
    //设置计算文本时字体的大小,以什么标准来计算
    NSDictionary *attrbute = @{NSFontAttributeName:[UIFont systemFontOfSize:kFontSize]};
    return [text boundingRectWithSize:CGSizeMake(kPhotoCell_Width, 1000) options:(NSStringDrawingUsesFontLeading | NSStringDrawingUsesLineFragmentOrigin) attributes:attrbute context:nil].size.height;
}

定义成宏的形式:
#define RELEASE_SAFE(_Pointer) do{[_Pointer release],_Pointer = nil;}while(0) 

沙盒机制:
数据持久化的本质:将数据读成文件,存储在本地
沙盒机制:沙盒就是系统针对于每个应用程序在本地生成的文件夹(名字随机生成).对于不同的应用程序,不能访问其他应用程序沙盒内的内容.对于该应用内容起到保护作用.
沙盒内的文件夹:
(1)Documents:用来存储长久保存的数据
(2)XXX.app: 应用程序的包,包含应用程序加载所需的所有资源,(readonly 只读,不可修改).平时使用的NSBundle就是该包.
(3)Library:
A: Caches:本地缓存,存储想暂时保存的数据.比如下载的视频,音频,图片都存储在该文件夹下(Videos, Musics, Images).
B: tmp:存储还未下载完的视频, 音频, 当下载完毕之后将文件转移到Caches文件夹下

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值