3二、UIImage+Scale縮放圖片ide
UIImage能夠加載圖片,可是咱們想要獲得一張縮小或放大的圖片,利用UIImage不能作到,下面咱們添加一個UIImage的分類,用來實現UIImage中圖片的放大和縮小。函數
首先,建立一個UIImage+Scale類。字體
而後,實現該類的方法:spa
#import <UIKit/UIKit.h>.net
@interface UIImage (scale)code
-(UIImage*)scaleToSize:(CGSize)size;orm
@end 對象
#import "UIImage+Scale.h"接口
@implementation UIImage (scale)圖片
-(UIImage*)scaleToSize:(CGSize)size
{
// 建立一個bitmap的context
// 並把它設置成爲當前正在使用的context
UIGraphicsBeginImageContext(size);
// 繪製改變大小的圖片
[self drawInRect:CGRectMake(0, 0, size.width,size.height)];
// 從當前context中建立一個改變大小後的圖片
UIImage* scaledImage = UIGraphicsGetImageFromCurrentImageContext();
// 使當前的context出堆棧
UIGraphicsEndImageContext();
// 返回新的改變大小後的圖片
return scaledImage;
}
最後,就是該類的使用了:
#import "UIImage+Scale.h"
[[UIImage imageNamed:」p.png」] scaleToSize:CGSizeMake(252.0f,192.0f)];
3三、Coreplot:在散點圖中,legendTitleForBarPlot不會被調用
legendTitleForBarPlot是柱狀圖的數據源方法,在散點圖的數據源委託CPTScatterPlotDataSource 中沒有該方法。要定製 legend 的標題,惟一的方法是指定plot 的 title 屬性。若是 title 爲空,則使用 identifier 屬性。
3四、 setHidesBackButton不能隱藏返回按鈕
將setHidesBackButton:animated:移到 viewDidAppear: 方法,而不要在 viewWillAppear:或者viewDidLoad方法中。
3五、cannotfind protocol declaration NSURLConnectionDelegate
iOS5開始NSURLConnectionDelegate被deprecated,在NSURLConnection.h中,這些方法變成了非正式協議。同時複製了一份這些方法的拷貝到正式協議NSURLConnectionDataDelegate中。你能夠直接將類接口聲明的<NSURLConnectionDelegate>刪除,並實現這些方法,從而使用非正式協議。
3六、警告「Property'ssynthesized getter follows Cocoa naming convention for returning 'owned'objects」
要synthesized的屬性中,屬性名不得以「new」開頭,好比「newFeature」。
3七、 Implicit declaration of function 'xxx' is invalidin C99
這是Xcode的一個bug。當編譯器第一次看見函數定義,卻未找到該函數原型時會報此錯誤。解決方法是在函數定義以前加入函數原型聲明。注意,把函數原型聲明語句插入到類的interface聲明內(.h頭文件),或者的類implementation語句以前(.m文件)。
3八、-[UIImageresizableImageWithCapInsets:]: unrecognized selector
這個方法是iOS5中新增的,在iOS4中請使用stretchableImageWithLeftCapWidth:topCapHeight:方法。代碼:
if([img respondsToSelector:@selector(resizableImageWithCapInsets:)])
{//for iOS 5+
img=[srcImg resizableImageWithCapInsets:UIEdgeInsetsMake(0, 6, 0, 6)];
}else{//iOS 4 compatibility
img=[srcImg stretchableImageWithLeftCapWidth:6 topCapHeight:0];
}
3九、計算指定字體的字符串Size
CGSizemaximumLabelSize = CGSizeMake(250 ,MAXFLOAT);
CGSizeexpectedLabelSize = [LABEL.text sizeWithFont:[UIFontsystemFontOfSize:UILabel.font]
constrainedToSize:maximumLabelSize
lineBreakMode:UILineBreakModeWordWrap];
expectedLabelSize即根據字體、最大size限制、換行模式計算出來的實際Size。
40、ASIHTTPRequestclearDelegateAndCancel方法致使程序崩潰
ASIHTTPRequest並不會持有delegate對象,當你取消一個request或delegate釋放後,爲了不調用釋放了的delegate方法,咱們應當取消request。可是clearDelegateAndCancel方法會致使一個調用deallocated對象錯誤並崩潰。
爲了不這個,你應當(針對1.8.1及以前的版本):
在delegate中持有ASIHTTPRequest對象;
當釋放delegate或取消request時,使用不要調用clearDelegateAndCancel而改用「[requestrelease],request=nil;」。
4一、 Castof 'int' to 'CAMediaTimingFunction *' is disallowed with ARC
如下代碼致使上述錯誤:
transition.timingFunction= UIViewAnimationCurveEaseInOut;
事實上,就算在MRC(手動內存管理)中,這句代碼也是不正確的。之因此可以不出錯,是由於UIViewAnimationCurveEaseInOut一般爲0,轉換過來就變成了nil。實際上這句代碼應該修改成:
[animationsetTimingFunction:[CAMediaTimingFunctionfunctionWithName:kCAMediaTimingFunctionEaseInEaseOut]];