-(UIImage*) OriginImage:(UIImage *)image scaleToSize:(CGSize)size
{
UIGraphicsBeginImageContext(size); //size 为CGSize类型,即你所需要的图片尺寸
[image drawInRect:CGRectMake(0, 0, size.width, size.height)];
UIImage* scaledImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
return scaledImage; //返回的就是已经改变的图片
}
iOS等比缩放图片
iOS ScrollView中根据滚动距离来判断当前页数
ScrollView中通过当前滚动的相对距离contentOffset属性除以页面宽度来获取当前页数,主要用于滚动视图时让导航栏按钮或标题同步切换;
//pagecontroll的委托方法
- (void)scrollViewDidScroll:(UIScrollView *)scrollView
{
//ScrollView中根据滚动距离来判断当前页数
int page = (int)scrollView.contentOffset.x/scrollView.JK_width+0.5;
// 设置页码
self.pageControl.currentPage = page;
self.pageControl.numberOfPages =_regionalArr.count%3==0?_regionalArr.count/3:1+_regionalArr.count/3;//指定页面个数
}
iOS 向下取整、向上取整、四舍五入
向上取整:float ceilf(float); double ceil(double);
向下取整:float floorf(float); double floor(double);
四舍五入:float roundf(float); double round(double);
iOS判断当前控制器是否正在显示
1 2 3 4 |
|
也可以将该方法定义在UIViewController的分类中, 方便多处调用
假如一个UIView对象当前正在显示,那么它的window属性肯定为非空值。
虽然官方文档未说明UIView未显示时window属性的取值,但是经过简单的测试,大部分情况下UIView未显示时,
window的值为空,因此依据此判断当前UIViewController是否正在显示。但是访问UIViewController的view属性时,
可能会引起view加载(假如此时还未加载),这是不必要的,而且还可能引起无法预期的问题。因此在访问view属性之前,最好先检查isViewLoaded属性来避免上述问题。
iOS 判断程序在前台还是后台运行
UIApplicationState state = [UIApplication sharedApplication].applicationState;
BOOL result = (state ==UIApplicationStateBackground);
NSLog(@"是后台运行: %@",result?@"YES":@"NO");
UIApplicationState state2 = [UIApplication sharedApplication].applicationState;
BOOL result2 = (state2 ==UIApplicationStateActive);
NSLog(@"是前台运行: %@",result2?@"YES":@"NO");
iOS UIView 添加背景图片
UIView 添加背景图片:
第一种方法(不推荐):
用的UIView的设置背景颜色方法,用图片做图案颜色,然后传给背景颜色。
[self.view setBackgroundColor:[UIColor colorWithPatternImage:[UIImage imageNamed:@”“]]];
这种方法是最简单的,但是,存在的问题也比较:
首先,[UIImage imageNamed:@”“] 会产生缓存,它存入内存中的图片不会自动释放。
第二,界面显示的图片不全的问题(我们使用的都是逻辑点,那么它的坐标范围是320X480,但是所使用的设备的像素分辨率不一定320X480,
如iPhone4的屏幕分辨率就是640X960,如果按照像素分辨率来看的话,iPhone4的的屏幕会 装下 4张320X480的图片,但是iOS针对这种情况
进行了处理,那就是使用逻辑点代替了像素点,那么现在我们看到的iPhone加载的图还是320X480的,可以覆盖全屏。)。
第二种方法(可以)
在view上面添加一个UIImageView:
UIImageView* imageView = [[UIImageView alloc] initWithFrame:view.bounds];
imageView.image = [[UIImage imageNamed:@”name.png”] stretchableImageWithLeftCapWidth:left topCapHeight:top];
[view addSubview:imageView];
这种方法在view释放后,内存中的东西也会释放。
第三种方法(推荐)quartzCore方式:
UIImage *image = [UIImage imageNamed:@”name.png”];
view.layer.contents = (id) image.CGImage;
// 如果需要背景透明加上下面这句
view.layer.backgroundColor = [UIColor clearColor].CGColor;