最近项目不忙来整理一下项目中用到的一些小知识点,因为自己发现小知识经常不用很容易忘记(哭😢)。我们项目中有一个图片浏览的功能,类似微博,QQ动态里展示的图片。类似这种(哈哈,网上盗图)。
图片展示我用的是第三方的SDPhotoBrowser,图片浏览功能有一个需求是点击图片进行大图浏览的时候要显示高清图片,但是服务器返回的图片地址是缩略图的地址,点击展示大图的时候要获取到高清图片地址,后台指定的截取规则是截取掉图片格式前的小数点前的3个数字(哈哈,有点绕了)。举例说明:服务器返回缩略图地址是http://img.xxx.com/file/5781dd2058076857102_01.png, 获得高清地址,需要截取成http://img.xxx.com/file/5781dd2058076857102.png。
思路
首先截取掉最后一个图片格式字符串“png”,得到前边一部分子串。然后对得到的子串进行截取,截掉多余部分,最后拼接上图片格式就得到正确的高清图片地址。
代码实现
-(NSURL *)photoBrowser:(SDPhotoBrowser *)browser highQualityImageURLForIndex:(NSInteger)index
{
// NSString * str = @"http://img.xxx.com/file/5781dd2058076857102_01.png";
// http://img.xxx.com/file/5781dd2058076857102.png
//从数据源中的到点击图片的缩略地址
NSString * str = self.dataList[index];
//通过“.”分隔符截取字符串
NSArray * array = [str componentsSeparatedByString:@"."];
NSMutableString * mutableStr = [NSMutableString new];
if (array.count >= 2)
{
//用“.”拼接除了最后一个元素的子串
for (int i = 0; i< array.count-1; i++) {
[mutableStr appendString:[NSString stringWithFormat:@"%@.",array[i]]];
}
}
NSString * resuStr = @"";
if (mutableStr.length>4) {
NSUInteger length = mutableStr.length - 4;
NSString * rangeStr = [mutableStr substringWithRange:NSMakeRange(0, length)];
resuStr = [NSString stringWithFormat:@"%@.%@",rangeStr,array.lastObject];
}
NSURL *url = [NSURL URLWithString:resuStr];
return url;
}
以上是全部思路和实现,有问题希望间友友帮忙指出。