//主要知识点:
当创建多个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文件夹下
UItable的cell高度随着文本的噶双手和图片的噶偶自动变换, 沙盒机制, iOS拨打电话, iOS汉字转拼音
最新推荐文章于 2023-10-18 09:20:44 发布