-(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(@"是背景運作: %@",[email protected]"YES":@"NO");
UIApplicationState state2 = [UIApplication sharedApplication].applicationState;
BOOL result2 = (state2 ==UIApplicationStateActive);
NSLog(@"是前台運作: %@",[email protected]"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;