Category Archives: 项目实战(iOS)

关于字符串显示长度sizeWithFont要说几句

1、在iOS7之前,动态布局场景中,由于初始化UILable的大小与实际需要显示的文字内容有时候会冲突,简单一点讲UILable初始时设小了,文字过多显示不完,或者初始设置太大了,文字较少,显示效果过于空荡。

2、如何解决这个问题呢,一般需要用到NSString的两个相关方法:

– (CGSize)sizeWithFont:(UIFont *)font

– (CGSize)sizeWithFont:(UIFont *)font constrainedToSize:(CGSize)size

3、这两个方法相信很多人都不陌生,但在iOS7之后此类方法都已过期,官方不推荐使用,取而代之的对应两个方法为:

– (CGSize)sizeWithAttributes:(NSDictionary *)attrs

– (CGRect)boundingRectWithSize:(CGSize)size options:(NSStringDrawingOptions)options attributes:(NSDictionary *)attributes context:(NSStringDrawingContext *)context[……]

继续阅读

如何让iOS项目支持中文(控件显示中文)

1、在项目开发中,有些系统自带的控件(如:拍照、搜索等)上带有Lable或Button,然而默认情况下显示的都中英文,如下所示:

iOS-Simulator-Screen-Shot-2015年6月11日-上午9.14.53iOS-Simulator-Screen-Shot-2015年6月11日-上午9.14.55

2、将本地语言换成中文结果还是显示英文,这是如何?有些同志们通过各种subViews及superView加for循环加kindOfClass等一系统方式方法找到该文[……]

继续阅读

如何解决百度地图反地理编码失败的问题!!

我们在使用百度地图定位成功后,一般会使用反地理编码的方式进行地址解析,获取地址信息供我们应用使用,如下方法所示:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
// 获取地址位置后调用方法
- (void)didUpdateBMKUserLocation:(BMKUserLocation *)userLocation
{
/*
????code for location...
?*/
????????// 反地址编码获取地址
????????BMKReverseGeoCodeOption *option = [[BMKReverseGeoCodeOption alloc] init];
????????option.reverseGeoPoint = userLocation.location.coordinate;
?????????
????????SALog(@"开始反地理编码...");
?????????
????????if (![self.geoCode reverseGeoCode:option]){
????????????SALog(@"反地址编码失败,使用Apple地图反地理编码");
????????????CLLocationCoordinate2D newCoor = [[self class] GCJ02FromBD09:userLocation.location.coordinate];
????????????CLLocation *location = [[CLLocation alloc] initWithLatitude:newCoor.latitude longitude:newCoor.longitude];
????????????[[[CLGeocoder alloc] init] reverseGeocodeLocation:location completionHandler:^(NSArray *placemarks, NSError *error) {
????????????????CLPlacemark *placemark = [placemarks firstObject];
????????????????SALog(@"%@ - %@", placemark.name, placemark.locality);
/*
????code for address...
?*/
????????????}];
????????}
????????// 结束
????}
}

[……]

继续阅读