最近做一个项目,遇到了一些小问题,下面总结一下遇到的问题,以及解决办法。
1.如何把一个正方形的图片切成圆形?
imageView.layer.masksToBounds = YES;
imageView.layer.cornerRadius = 50;
2.我们可以设置 状态栏的文字颜色,但是我们不能设置状态栏的背景颜色。当设置导航栏的背景颜色的时候,状态栏的背景颜色会跟着变化,这是我们所不想看到的。我们可以在导航条上放置一个对应颜色的view 来解决这个问题。
3.下拉刷新的用法
UIRefreshControl *refresh = [[UIRefreshControl alloc] init];
[self.view addSubview:refresh];
self.refreshControl = refresh;
[refresh addTarget:self action:@selector(refreshData:) forControlEvents:UIControlEventValueChanged];
4.设置view的边框颜色
view.layer.borderColor = [UIColor redColor].CGColor;
view.layer.borderWidth = 3;
5.计算一段文字的尺寸
- (CGRect)rectWithString:(NSString *)string
{
CGSize maxSize = CGSizeMake(self.view.bounds.size.width-20, CGFLOAT_MAX);
NSDictionary *attribute = @{NSFontAttributeName: [UIFont systemFontOfSize:13]};
CGRect frame = [string boundingRectWithSize:maxSize options:NSStringDrawingTruncatesLastVisibleLine | NSStringDrawingUsesLineFragmentOrigin | NSStringDrawingUsesFontLeading attributes:attribute context:nil];
return frame;
}
6.tableview中数据源方法的调用次数
在tableview的数据源方法中,每显示一个cell要调用方法
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
两次,所以我们不论cell的个数或多或少,都要使用重用机制,否则即便cell的个数为1,如果不重用的话也会创建两次cell。
7.如何把一串字符串中的数字剥离出来?
使用正则表达式最方便:
NSRegularExpression *regular = [NSRegularExpression regularExpressionWithPattern:@"[a-zA-Z:.-]" options:0 error:NULL];
NSString *result = [regular stringByReplacingMatchesInString:string options:0 range:NSMakeRange(0, [string length]) withTemplate:@""];
return [result longLongValue];
8.用oc实现的冒泡排序法:
- (void)sortWithPioneer
{
NSMutableArray *p = [NSMutableArray array];
[p addObjectsFromArray:self.sortData];
for(int i = 0; i < p.count; i++)
{
for(int j = 0; j < p.count-1-i; j++)
{
long long a = [[p[j] pioneer] longLongValue];
long long b = [[p[j+1] pioneer] longLongValue];
if (a < b) {
[p exchangeObjectAtIndex:j withObjectAtIndex:j+1];
}
}
}
[self.sortData removeAllObjects];
[self.sortData addObjectsFromArray:p];
}
9.当使用Charles抓包HTTPs时候需要做下边的设置
在help->SSL Proxying->install Charles Certificate
10.array没有添加对象的方法addObject,因为创建的不是可变数组