记录一些常用的 易忘的 小的知识点。有自己遇到的,有拷贝网上的,希望加深一下记忆。持续更新中……
UIlabel 设定好固定的宽高,让文字大小自适应
label.adjustsFontSizeToFitWidth = YES;
从图片的二进制格式判断图片类型
- (NSString *)typeForImageData:(NSData *)data
{
uint8_t c;
[data getBytes:&c length:1];
switch (c)
{
case 0xFF:
return @".jpeg";
case 0x89:
return @".png";
case 0x47:
return @".gif";
case 0x49:
case 0x4D:
return @".tiff";
}
return nil;
}
组头视图悬停
UITableView有两个headerView:tableHeaderView、和sectionHeaderView(组头视图)。
tableHeaderView不会悬停。sectionHeaderView可以悬停,由UITableViewStyle控制
UITableViewStylePlain,悬停。
UITableViewStyleGrouped,不悬停。
请求返回的数据类型 text/html 结果 json 解析失败
Error Domain=com.alamofire.error.serialization.response
Code=-1016 "Request failed: unacceptable content-type: text/html"
修改方法 在 AFURLResponseSerialization.m 中
self.acceptableContentTypes = [NSSet setWithObjects:
@"application/json", @"text/json", @"text/javascript",nil
];
改为
self.acceptableContentTypes = [NSSet setWithObjects:
@"application/json", @"text/json", @"text/javascript", @"text/html",nil
];
json解析成功
第三方库重复引入
大概会报错
duplicate symbol __isBackDrop in: XXX.0 XXX.0,
ld: 65 duplicate symbols for architecture arm64 clang:
error: linker command failed with exit code 1 (use -v to see invocation)
other Linker Flags 把 -all_load去掉,就可以正常运行了。
去除navigationController下面的线
if ([self.navigationController.navigationBar
respondsToSelector:@selector( setBackgroundImage:forBarMetrics:)]){
//取到navigationBar的子控件数组
NSArray *list=self.navigationController.navigationBar.subviews;
for (id object in list) {
if ([object isKindOfClass:[UIImageView class]]) {
UIImageView *imageView=(UIImageView *)obj;
NSArray *list2=imageView.subviews;
for (id object2 in list2) {
if ([object2 isKindOfClass:[UIImageView class]]) {
UIImageView *imageView2=(UIImageView *)object2;
//取到该线,隐藏
imageView2.hidden=YES;
}
}
}
}
}
//设置导航控制器透明
[self.navigationController.navigationBar
setBackgroundImage:[[UIImage alloc] init] forBarMetrics:UIBarMetricsDefault];
字典转化成字符串
- (NSString*)dictionaryToJson:(NSDictionary *)dic
{
NSError *parseError = nil;
NSData *jsonData = [NSJSONSerialization dataWithJSONObject:dic
options:NSJSONWritingPrettyPrinted error:&parseError];
return [[NSString alloc] initWithData:jsonData
encoding:NSUTF8StringEncoding];
}
统计中英文混合字符串的长度
- (int)convertToInt:(NSString*)strtemp {
int strlength = 0;
char* p = (char*)[strtemp cStringUsingEncoding:NSUnicodeStringEncoding];
for (int i=0 ; i<[strtemp lengthOfBytesUsingEncoding:NSUnicodeStringEncoding] ;i++) {
if (*p) {
p++;
strlength++;
}else {
p++;
}
}
return strlength;
}
模糊背景实现
UIBlurEffect *eff = [UIBlurEffect effectWithStyle:UIBlurEffectStyleLight];
UIVisualEffectView *v = [[UIVisualEffectView alloc] initWithEffect:eff];
UIVisualEffectView *v1 = [[UIVisualEffectView alloc] initWithEffect:eff];
v.frame = self.leftBackgroundView.bounds;
v1.frame = self.rightbackgroundView.bounds;
//左右侧背景图片
[self.leftBackgroundView sd_setImageWithURL:[NSURL URLWithString:model.image_url]];
[self.rightbackgroundView sd_setImageWithURL:[NSURL URLWithString:model.image_url]];
[self.rightbackgroundView addSubview:v];
[self.leftBackgroundView addSubview:v1];
KVC修改 UITextField的placeHolder的占位符颜色
[_textField setValue:[UIColor orangeColor] forKeyPath:@"_placeholderLabel.textColor"];