ios問題筆記

32位 最多內存0到3G 64位 最多內存0到8G




iOS模板code4app.com
github.com
developer.apple.con

動畫

label不能變小 只能變大,(而uiview uiimageview可變大變小,對於uiview uiimageview在動畫中指定frame name他就會從當前位置大小過分到你指定的位置和大小)

旋轉

 旋轉物體的x= 圍繞的物體的 x座標+cosR
角度=(angle/180.0*M_PI)

擴充屬性

若是說從此過程當中遇到系統提供的類不能知足須要,那麼要馬上想到自定義一個類繼承自系統提供的類,在自定義類中擴充在本身想要的屬性和方法,可是,要注意在建立對象時用自定義的類建立對象。


打點調用

字符串指針能夠用retain,copy,非字符串指針只能用copy,非指針類型用assign

導航條的高度是44

終端卸載

sudo rm -rf  名字

tab鍵智能獲取路徑


數據持久化

fmdb plist  對象序列化
 

單例類

用到全局惟一的對象,就要用單例類,特別是對於某個用戶的信息,極可能用到單例類,用戶信息是惟一的(單例類);


NSFileHandel對文件內容管理NSFileManager是對文件管理

目錄必須存在


地圖

2大塊  Locationframework    (user location and  heading)    Mapkit  (display annotation
 )   
關於
發短信 發郵件
廣泛存在大多數app設置裏邊 關於


修改ARC


gar檢測是不是arc
arc和非arc兼容


TARGETS 中
DDMenuController.m
-fobjc-arc

分析項目 大到小 --》小到具體

當farm改變 la'youtsuview調用

調用layoutsubview的時機
一:當view的frame或bounds發生改變
1:直接改view的frame或bounds 會調用view中layoutsubview
2:當屏幕旋轉的時候,視圖控制器中根view發生變化,會調用視圖控制中viewDidLayoutsuview)
二:在當前view上addsubvie添加子view,會調用view中layoutSubview
三:改變view的大小的時候,會觸發父view的layoutsubview被調用
四:當UIScroller中滾動的時候,會調用自身layoutsubview.

button select屬性

數據庫》用戶》成功》收藏  數據庫


字符串用長度,數組用個數

selector  sel 是哈希 經過哈希算法轉化成整數值  在oc中沒有找到這個     objicet_

SEL 類成員方法的指針
能夠理解 @selector()就是取類方法的編號,他的行爲基本能夠等同C語言的中函數指針,只不過C語言中,能夠把函數名直接賦給一個函數指針,而Object-C的類不能直接應用函數指針,這樣只能作一個@selector語法來取.
它的結果是一個SEL類型。這個類型本質是類方法的編號(函數地址)



CoreData
Z_PK     是表的主鍵,從1開始遞增,惟一值
Z_ENT  表在xcdatamodel 中的索引值,建立了5個表,Z_ENT的區間就是[1,5 ]
Z_OPT  表示的是每條數據被操做的次數,初始化值爲1,只要是增刪改查都會加1


iphone開發重要基礎知識------委託代理(degegate)
委託代理(degegate),顧名思義,把某個對象要作的事情委託給別的對象去作。那麼別的對象就是這個對象的代理,代替它來打理要作的事。反映到程序中, 首先要明確一個對象的委託方是哪一個對象,委託所作的內容是什麼。委託機制在不少語言中都用到的,這只是個通用的思想,網上會有不少關於這方面的介紹。
  那麼在蘋果開發過程當中,用到委託的程序實現思想以下,我主要拿如何在視圖之間傳輸信息作個例子。譬如:在兩個頁面(UIIview視 圖對象)實現傳值,用委託(delegate)能夠很好作到。


ViewController的生命週期中各方法執行流程以下:
init—>loadView—>viewDidLoad—>viewWillApper—>viewDidApper—>viewWillDisapper—>viewDidDisapper—>viewWillUnload->viewDidUnload—>dealloc

使用編譯器選項來開啓和關閉ARC
 
開發者使用-fobjc-arc 編譯選項開啓ARC,還能夠對某一個文件使用ARC,便於在使用手動引用計數的文件中使用ARC。對於已經使用ARC的工程,仍能夠指定一個文件來關閉ARC經過-fno-objc-arc編譯選項。



編譯時候出現路徑錯誤解決辦法

路徑錯誤須要在search Path的library裏改爲絕對路徑



打包流程
1.在MyNslog中修改

2.在TARGETS裏的identifier修改
3.在build setting裏邊修改 code singning的release  (project和targets都得修改)
注意  鑰匙串的添加進去 沒有的話須要登陸  下載
4.而後選爲iOS device  在project裏邊選擇  歸檔

在iTunes修改app內容upload

須要根據相應帳號登陸iTunes修改內容 而後再xcode 的tool中  上傳

cornerStone



ARC 與非ARC 互轉
1, target -> Build phases -> complie sources
     -fobjc-arc    轉成arc
    -fNo-objc-arc 轉成非a


縮放效果
記住要設置point
CGAffineTransform aff;
            aff = CGAffineTransformScale(self.view.transform, 0.5f, 0.5f);
            [self.view setTransform:aff];

CGAffineTransformRotate(transform, M_PI);是旋轉的。

CGAffineTransformMakeRotation(-M_PI);也是旋轉的

transform = CGAffineTransformScale(transform, -1.0, 1.0);是縮放的。

view.transform = CGAffineTransformIdentity;線性代數裏面講的矩陣變換,這個是恆等變換


當 你改變過一個view.transform屬性或者view.layer.transform的時候須要恢復默認狀態的話,記得先把他們重置可使用
view.transform = CGAffineTransformIdentity,
或者view.layer.transform = CATransform3DIdentity,

Xcode6.0下載地址
 http://pan.baidu.com/s/1pJug2xX 密碼: e6q2

ios動態獲取UILabel的高度和寬度
分類: UI
2012-12-16 15:12 1871人閱讀 評論(0) 收藏 舉報
iosiOSIOSUILabel動態寬度高度
在使用UILabel存放字符串時,常常須要獲取label的長寬數據,本文列出了部分經常使用的計算方法。
1.獲取寬度,獲取字符串不折行單行顯示時所須要的長度
CGSize titleSize = [aString sizeWithFont:font constrainedToSize:CGSizeMake(MAXFLOAT, 30)];
注:若是想獲得寬度的話,size的width應該設爲MAXFLOAT。

2.獲取高度,獲取字符串在指定的size內(寬度超過label的寬度則換行)所需的實際高度.
CGSize titleSize = [aString sizeWithFont:font constrainedToSize:CGSizeMake(label.frame.size.width, MAXFLOAT) lineBreakMode:UILineBreakModeWordWrap];
注:若是想獲得高度的話,size的height應該設爲MAXFLOAT。

3.實際編程時,有時須要計算一段文字最後一個字符的位置,並在其後添加圖片或其餘控件(如info圖標),下面代碼爲計算label中最後一個字符後面一位的位置的方法。
CGSize sz = [label.text sizeWithFont:label.font constrainedToSize:CGSizeMake(MAXFLOAT, 40)];
CGSize linesSz = [label.text sizeWithFont:label.font constrainedToSize:CGSizeMake(label.frame.size.width, MAXFLOAT) lineBreakMode:UILineBreakModeWordWrap];
if(sz.width <= linesSz.width) //判斷是否折行
{
        lastPoint = CGPointMake(label.frame.origin.x + sz.width, label.frame.origin.y);  
}
else  
{  
        lastPoint = CGPointMake(label.frame.origin.x + (int)sz.width % (int)linesSz.width,linesSz.height - sz.height);  
}


iOS開發之指定UIView的某幾個角爲圓角 
2013-11-15 10:58:56|  分類: 技術日誌
|舉報
|字號
 訂閱


若是須要將UIView的4個角所有都爲圓角,作法至關簡單,只需設置其Layer的cornerRadius屬性便可(項目須要使用QuartzCore框架)。而若要指定某幾個角(小於4)爲圓角而別的不變時,這種方法就很差用了。
對於這種狀況,Stackoverflow上提供了幾種解決方案。其中最簡單優雅的方案,就是使用UIBezierPath。下面給出一段示例代碼。
UIView *view2 = [[UIView alloc] initWithFrame:CGRectMake(120, 10, 80, 80)];
view2.backgroundColor = [UIColor redColor];
[self.view addSubview:view2];
    
UIBezierPath *maskPath = [UIBezierPath bezierPathWithRoundedRect:view2.bounds byRoundingCorners:UIRectCornerBottomLeft | UIRectCornerBottomRight cornerRadii:CGSizeMake(10, 10)];
CAShapeLayer *maskLayer = [[CAShapeLayer alloc] init];
maskLayer.frame = view2.bounds;
maskLayer.path = maskPath.CGPath;
view2.layer.mask = maskLayer;
其中,
byRoundingCorners:UIRectCornerBottomLeft | UIRectCornerBottomRight
指定了須要成爲圓角的角。該參數是UIRectCorner類型的,可選的值有:
* UIRectCornerTopLeft
* UIRectCornerTopRight
* UIRectCornerBottomLeft
* UIRectCornerBottomRight
* UIRectCornerAllCorners
從名字很容易看出來表明的意思,使用「|」來組合就行了。

適應label的長度選擇image位置

ios6
CGSize  atextSize = [titleLabel.text sizeWithFont:[UIFont systemFontOfSize:12]
                     constrainedToSize:CGSizeMake(200, 100)
                         lineBreakMode:NSLineBreakByTruncatingTail];

ios7

//// 動態獲取高度或者寬度
-(CGSize)getHeightOrWeight:(NSString *)Title withFont:(int)font
{
    NSDictionary *attribute = @{NSFontAttributeName: [UIFont systemFontOfSize:font]};
    CGSize titleSize = [Title boundingRectWithSize:CGSizeMake(200, 100) options: NSStringDrawingTruncatesLastVisibleLine | NSStringDrawingUsesLineFragmentOrigin | NSStringDrawingUsesFontLeading attributes:attribute context:nil].size;
    
    return titleSize;
}




輸出控件frame
NSStringFromCGRect(self.loginView.frame)



自適應label
ios7
 +(float)getTextWidth:(float)textHeight text:(NSString *)text fontSize:(float)fontSize isBold:(BOOL)isBold
{
    if ([text length] == 0) {
        return 0;
    }
    if ([[[[UIDevice currentDevice] systemVersion] substringToIndex:1] intValue] >= 7.0) {
        if (isBold) {
            return [text boundingRectWithSize:CGSizeMake(MAXFLOAT, textHeight)
                                      options:NSStringDrawingUsesLineFragmentOrigin | NSStringDrawingUsesFontLeading
                                   attributes:[NSDictionary dictionaryWithObjectsAndKeys:[UIFont boldSystemFontOfSize:fontSize], NSFontAttributeName, nil]
                                      context:nil].size.height;
        } else {
            return [text boundingRectWithSize:CGSizeMake(MAXFLOAT, textHeight)
                                      options:NSStringDrawingUsesLineFragmentOrigin | NSStringDrawingUsesFontLeading
                                   attributes:[NSDictionary dictionaryWithObjectsAndKeys:[UIFont systemFontOfSize:fontSize], NSFontAttributeName, nil]
                                      context:nil].size.width;
        }
    } else {
        if (isBold) {
            return [text sizeWithFont:[UIFont boldSystemFontOfSize:fontSize]
                    constrainedToSize:CGSizeMake(MAXFLOAT, textHeight)
                        lineBreakMode:NSLineBreakByWordWrapping].width;
        }
        return [text sizeWithFont:[UIFont systemFontOfSize:fontSize]
                constrainedToSize:CGSizeMake(MAXFLOAT, textHeight)
                    lineBreakMode:NSLineBreakByWordWrapping].width;
    }
}

Ios6
//// 動態獲取高度或者寬度


-(CGSize)getHeightOrWeight:(NSString *)Title withFont:(int)font
{
//    NSDictionary *attribute = @{NSFontAttributeName: [UIFont systemFontOfSize:font]};
    
    CGSize  titleSize = [Title sizeWithFont:[UIFont systemFontOfSize:font]
                                    constrainedToSize:CGSizeMake(200, 100)
                                        lineBreakMode:NSLineBreakByTruncatingTail];
    return titleSize;
}






爲控件增長邊框

- (void)loadView {     
   [[UIApplication sharedApplication] setStatusBarHidden:YES withAnimation: UIStatusBarAnimationSlide];      
   UIImageView *contentView = [[MyUIImageView alloc] initWithFrame:[[UIScreen mainScreen] applicationFrame]];  
   [contentView setImage:[UIImage imageNamed:@"1.jpg"]];  
   [contentView setUserInteractionEnabled:YES];      
       
   self.view=[[UIView alloc] initWithFrame:[[UIScreen mainScreen] applicationFrame]];      
   [self.view addSubview:contentView];      
   self.view.backgroundColor=[UIColor blackColor];      
   
   /*      
   CALayer *layer=[contentView layer];      
   [layer setMasksToBounds:YES];      
   [layer setCornerRadius:10.0];      
   [layer setBorderWidth:4.0];      
   */      
   
   //爲視圖增長邊框      
   contentView.layer.masksToBounds=YES;      
   contentView.layer.cornerRadius=20.0;      
   contentView.layer.borderWidth=10.0;      
   contentView.layer.borderColor=[[UIColor blueColor] CGColor];      
   
   [contentView release];      
   
}

NSAttributeString

字符串拼接



當有收藏無我的中心

參考羊絨圍巾網


iOS 自帶的解析json的類。

1。數據源是NSData類型的,也能夠是NSString類型的,可是NSString類型的能夠轉換爲NSData類型的.
     NSString *responseString;
    NSData *da= [responseString dataUsingEncoding:NSUTF8StringEncoding];
    NSError *error = nil;
     id jsonObject = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingAllowFragments error:&error];
     if ([jsonObject isKindOfClass:[NSDictionary class]]){
     NSDictionary *dictionary = (NSDictionary *)data;
     NSLog(@"Dersialized JSON Dictionary = %@", deserializedDictionary);
     }else if ([jsonObject isKindOfClass:[NSArray class]]){
     NSArray *nsArray = (NSArray *)jsonObject;
     NSLog(@"Dersialized JSON Array = %@", deserializedArray);
     } else {
     NSLog(@"An error happened while deserializing the JSON data.");
     }

1.定義一個字符串a, 截取a 的某一個部分,複製給b, b必須是int型
  NSString *a = @"1.2.30";
    int  b= [[a substringWithRange:NSMakeRange(4,2)] intValue];
  NSLog(@"a:%@  \n",a  );
  NSLog(@"b:%d",b  );
 
Output : 2011-07-05 11:49:08.170 Q[4005:207]   a:1.2.30  
2011-07-05 11:49:08.172 Q[4005:207]            b:30

解析以下:substringWithRange: 專門截取字符串的一塊肉
           NSMakeRange(4,2)    從第4個字符開始截取,長度爲2個字符,(字符串都是從第0個字符開始數的哦~!)
             b = [a intValue]; 將 a 轉換爲 整數型
       b = [a floatValue];   將 a 轉換爲 小數型
       b = [a boolValue]; 將 a 轉換爲 布爾型(true /  false)
       b = [a integerValue]; 將 a 轉換爲 整數型
            b = [a longLongValue]; 將 a 轉換爲 長整型

2。 字符串截取到第n位  (substringToIndex: n)(第n 位不算再內)
 
- (void)viewDidLoad
{
    NSString  *a = @"i like long dress";
  NSString *b = [a substringToIndex:4];
    NSLog(@"\n b: %@",b);
}
 b: i li  
3。字符串從第n 位開始截取,直到最後 (substringFromIndex:n)(包括第 n 位)
 
- (void)viewDidLoad
{
    NSString  *a = @"i like long dress";
    NSString *b = [a substringFromIndex:4];
    NSLog(@"\n b: %@",b);
}
 

            b: ke long dress   。NSMutableString  爲可變的字符串
   NSString      爲不可變的字符串
 
-(void)viewDidLoad
{
   NSMutableString *a = [[NSMutableString  alloc]initWithString:@"123456798"];
   NSLog(@" \n a:  %@\n",a);
   [a deleteCharactersInRange:NSMakeRange(1,2)];
   NSLog(@" \n a:  %@\n",a);
    [a release];
}
 
2011-07-05 20:59:34.169 Q[9069:207]   a: 123456798
2011-07-05 20:59:34.171 Q[9069:207]   a: 1456798


計算兩個時間差的兩個函數  



兩個時間之差
- (NSString *)intervalFromLastDate: (NSString *) dateString1  toTheDate:(NSString *) dateString2
{
    NSArray *timeArray1=[dateString1 componentsSeparatedByString:@"."];
    dateString1=[timeArray1 objectAtIndex:0];
   
   
    NSArray *timeArray2=[dateString2 componentsSeparatedByString:@"."];
    dateString2=[timeArray2 objectAtIndex:0];

    NSLog(@"%@.....%@",dateString1,dateString2);
    NSDateFormatter *date=[[NSDateFormatter alloc] init];
    [date setDateFormat:@"yyyy-MM-dd HH:mm:ss"];
   
   
    NSDate *d1=[date dateFromString:dateString1];
   
    NSTimeInterval late1=[d1 timeIntervalSince1970]*1;
   
   
   
    NSDate *d2=[date dateFromString:dateString2];
   
    NSTimeInterval late2=[d2 timeIntervalSince1970]*1;
   
   
   
    NSTimeInterval cha=late2-late1;
    NSString *timeString=@"";
    NSString *house=@"";
    NSString *min=@"";
    NSString *sen=@"";
   
    sen = [NSString stringWithFormat:@"%d", (int)cha%60];
    //        min = [min substringToIndex:min.length-7];
//
    sen=[NSString stringWithFormat:@"%@", sen];
   

  
        min = [NSString stringWithFormat:@"%d", (int)cha/60%60];
//        min = [min substringToIndex:min.length-7];
//
        min=[NSString stringWithFormat:@"%@", min];
       
   
//    小時
        house = [NSString stringWithFormat:@"%d", (int)cha/3600];
//        house = [house substringToIndex:house.length-7];
        house=[NSString stringWithFormat:@"%@", house];

   
    timeString=[NSString stringWithFormat:@"%@:%@:%@",house,min,sen];
        [date release];
   
   
    return timeString;
}


一個時間距如今的時間

- (NSString *)intervalSinceNow: (NSString *) theDate
{
    NSArray *timeArray=[theDate componentsSeparatedByString:@"."];
    theDate=[timeArray objectAtIndex:0];
   
    NSDateFormatter *date=[[NSDateFormatter alloc] init];
    [date setDateFormat:@"yyyy-MM-dd HH:mm:ss"];
    NSDate *d=[date dateFromString:theDate];
   
    NSTimeInterval late=[d timeIntervalSince1970]*1;
   
   
    NSDate* dat = [NSDate date];
    NSTimeInterval now=[dat timeIntervalSince1970]*1;
    NSString *timeString=@"";
   
    NSTimeInterval cha=late-now;
   
    if (cha/3600<1) {
        timeString = [NSString stringWithFormat:@"%f", cha/60];
        timeString = [timeString substringToIndex:timeString.length-7];
        timeString=[NSString stringWithFormat:@"剩餘%@分", timeString];
       
    }
    if (cha/3600>1&&cha/86400<1) {
        timeString = [NSString stringWithFormat:@"%f", cha/3600];
        timeString = [timeString substringToIndex:timeString.length-7];
        timeString=[NSString stringWithFormat:@"剩餘%@小時", timeString];
    }
    if (cha/86400>1)
    {
        timeString = [NSString stringWithFormat:@"%f", cha/86400];
        timeString = [timeString substringToIndex:timeString.length-7];
        timeString=[NSString stringWithFormat:@"剩餘%@天", timeString];
       
    }
    [date release];
    return timeString;
}


自適應cell
 NSString *content = [[m_tableviewDataArray objectAtIndex:indexPath.row] objectForKey:@"content"];
            content = [NSString stringWithFormat:@"評論:%@",content];
            CGSize size = [content sizeWithFont:[UIFont systemFontOfSize:13] constrainedToSize:CGSizeMake(224, 1000) lineBreakMode:NSLineBreakByCharWrapping];
                return 43+size.height;


  [[[UIApplication sharedApplication] keyWindow] endEditing:YES];


當圖片請求加密時。。。。
   _imageUrl = [[Global shared].textDataUrl stringByAppendingFormat:@"%@%@",@"User_Logo?id=",[[dic objectForKey:@"user"] objectForKey:@"uid"]];
            dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
                NSData *data = [NSData dataWithContentsOfURL:[NSURL URLWithString:_imageUrl]];
                
                
                
//                [self  userHead:dic];
                
               
                UIImage *image = [UIImage imageWithData:[GTMBase64 decodeData:data]];
                if (image) {
                    dispatch_async(dispatch_get_main_queue(), ^{
//                        self.imageData = [GTMBase64 decodeData:image];
                        cell.headImageView.image = image;
                    });
                }
                
                
            });
汽包拉伸

UIImage * image = [UIImage imageNamed:@"img_dialog.9.png"];
            image = [image resizableImageWithCapInsets:UIEdgeInsetsMake(5, 5, 0, 5) resizingMode:UIImageResizingModeStretch];
//            UIImageView *imageView = [[UIImageView alloc] initWithImage:image];
            [cell.contentBgImage setImage:image];


經過手勢移除鍵盤


- (void)viewDidLoad
{
[super viewDidLoad];
UITapGestureRecognizer *tapGr = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(viewTapped:)];
tapGr.cancelsTouchesInView = NO;
[self.view addGestureRecognizer:tapGr];
}
-(void)viewTapped:(UITapGestureRecognizer*)tapGr{
[activitySearchBar resignFirstResponder];
}

webView改變字體大小
  NSString*str=[NSString stringWithFormat:@"document.body.style.fontSize=%f;",12.0];
    [webView stringByEvaluatingJavaScriptFromString:str];


xcode路徑


mac系統如何顯示和隱藏文件

蘋果Mac OS X操做系統下,隱藏文件是否顯示有不少種設置方法,最簡單的要算在Mac終端輸入命令。顯示/隱藏Mac隱藏文件命令以下(注意其中的空格而且區分大小寫):
顯示Mac隱藏文件的命令:defaults write com.apple.finder AppleShowAllFiles -bool true
隱藏Mac隱藏文件的命令:defaults write com.apple.finder AppleShowAllFiles -bool false


   NSString *string = @"你知道怎麼在一個設置不一樣的顏色嘛?";
    NSMutableAttributedString *attrString = [[NSMutableAttributedString alloc] initWithString:string];
    //設置顏色(NSForegroundColorAttributeName表明要設置顏色, value表明值, range 表明範圍)
    /**
     其餘設置:
     1.NSForegroundColorAttributeName //顏色
     2.NSFontAttributeName //字體
     3.NSBackgroundColorAttributeName //背景色
     //還有其餘的不少的屬性,能夠本身去看蘋果的API,這裏再也不詳述
     */
    [attrString addAttribute:NSForegroundColorAttributeName value:[UIColor orangeColor] range:NSMakeRange(1, 7)];

證書問題

pro身份過時能夠改下名字

從新上傳



有時候在畫cell的時候,裏面的控件我會給它設置tag,用來在cellForRowAtIndexPath中獲取每一個cell的子控件,若是子控件有個UIButton,你給它設置targeta後,在響應的方法裏沒辦法分是從哪個cell的button觸發的,由於全部的cell的那個UIbutton的tag是同樣的。

既然不準改變tag,有沒有其餘辦法知道它的父容器Cell的行數呢?知道行數了不會知道是哪個cell的Button觸發的。
方法1:
NSString* cellStr1 = [NSString stringWithFormat:@"%d", indexPath.row];
[btn_attention setTitle:cellStr1 forState:UIControlEventTouchCancel];

獲取title,並轉爲行數:

NSString* cellIndex = [sender titleForState:UIControlEventTouchCancel];
int tag =[cellIndex intValue];


方法2:
 UITableViewCell * cell = (UITableViewCell *)[[sender superview] superview];
   NSIndexPath * path = [self.baseTableView indexPathForCell:cell];
   //獲取按鈕所在的cell的row
 BnetBillMode = [self.tableArray objectAtIndex:path.row];


方法3:

 [cell.button addTarget:self action:@selector(didTapButton:)   forControlEvents:UIControlEventTouchUpInside];
那麼點擊button時就會調用
- (void)didTapButton:(UIButton *)sender
      剩下的就是如何經過這個sender得到它所在的cell。咱們這麼實現這個方法,

- (void)didTapButton:(UIButton *)sender
{
  CGRect buttonRect = sender.frame;
  for (CustomCell *cell in [self.baseTableView visibleCells])
  {
    if (CGRectIntersectsRect(buttonRect, cell.frame))
    {
      //cell就是所要得到的    }
  }
}

查找某個數組中包含某個字符串
    NSArray * array = [NSArray arrayWithObjects:@"a",@"aa",@"1a",@"ea",@"add",@"", nil];
    for (NSString * a in array) {
        NSRange  rang = [a rangeOfString:@"a"];
        if (rang.length>0) {
            NSLog(@"%@",a);
        }
    }
webViewCell 調整高度

- (void)webViewDidFinishLoad:(UIWebView *)webView {
    
    for (UIScrollView *view in webView.subviews) {
        
        // int miHeight;
        
        if ([view isKindOfClass:[UIScrollView class]]) {
            
            NSString *str = [webView stringByEvaluatingJavaScriptFromString:@"document.body.scrollHeight;"];
            
            int iHeight = [str intValue];
            
            if (iHeight<10) {
                
                iHeight = 10;
                
            }
            webHeight = iHeight;
            webView.frame = CGRectMake(0, 166, 320, webHeight+166);
            
//            NSDictionary *dic = [[NSDictionary alloc] initWithObjectsAndKeys: nil];
//            
//            [dic setValue:[NSString stringWithFormat:@"%d",iHeight] forKey:[NSString stringWithFormat:@"%d",webView.tag]];
            
            [self OnLoadFinish:(WebViewCell *)webView.superview.superview];
            
        }
        
    }
    
    
    
}





- (void)OnLoadFinish:(WebViewCell *)sender {
    
    [m_tableview beginUpdates];
    
    
    //..........
    
    
    [m_tableview endUpdates];
    
}


NSMutableAttributedString 改變部分顏色
self.title = @"For iOS 6 & later";
NSMutableAttributedString *str = [[NSMutableAttributedString alloc] initWithString:@"Using NSAttributed String"];
[str addAttribute:NSForegroundColorAttributeName value:[UIColor blueColor] range:NSMakeRange(0,5)];
[str addAttribute:NSForegroundColorAttributeName value:[UIColor redColor] range:NSMakeRange(6,12)];
[str addAttribute:NSForegroundColorAttributeName value:[UIColor greenColor] range:NSMakeRange(19,6)];
[str addAttribute:NSFontAttributeName value:[UIFont fontWithName:@"Arial-BoldItalicMT" size:30.0] range:NSMakeRange(0, 5)];
[str addAttribute:NSFontAttributeName value:[UIFont fontWithName:@"HelveticaNeue-Bold" size:30.0] range:NSMakeRange(6, 12)];
[str addAttribute:NSFontAttributeName value:[UIFont fontWithName:@"Courier-BoldOblique" size:30.0] range:NSMakeRange(19, 6)];
attrLabel.attributedText = str;



nsrang肯定字符串的位置
- (void)viewDidLoad
{
    [super viewDidLoad];
    //抽取指定範圍的字符串
    NSString *string1 = @"0123456789";
    NSRange range1 = NSMakeRange(0, 4);//NSMakeRange這個函數的做用是從第0位開始計算,長度爲4
    NSLog(@"從第0個字符開始,長度爲4的字符串是:%@",[string1 substringWithRange:range1]);
    NSLog(@"抽取從頭開始到第4個字符:%@",[string1 substringToIndex:4]);
    NSLog(@"抽取從第6個字符開始到末尾:%@",[string1 substringFromIndex:6]);
    
    NSString *string2 = @"wo shi xiao bai zhu";
    NSRange range2 = [string2 rangeOfString:@"bai"];
    if (range2.length > 0) {
        NSLog(@"{字符串中「bai」的位置,長度}==%@",NSStringFromRange(range2));
    }
    //判斷在一串字符串中是否找到某個字符串
    NSRange range3 = [string2 rangeOfString:@"zhu"];
    if (range3.location != NSNotFound) {
        NSLog(@"找到了@「zhu」這個字符串!");
    }
    else
        NSLog(@"沒找到!");
}

判斷是否爲空

+ (BOOL)arrayNOTNull:(id)object{
    if ((NSNull *)object == [NSNull null]){
        return NO;
    }
    return YES;
}

+ (BOOL)isNOTNull:(id)object{
    // 判斷是否爲空串
    if ([object isEqual:[NSNull null]]) {
        return NO;
    }
    else if ([object isKindOfClass:[NSNull class]])
    {
        return NO;
    }
    else if (object==nil){
        return NO;
    }
    else if ([(NSString *)object isEqualToString:@""] ||[(NSString *)object isEqualToString:@" "]){
        return NO;
    }
    return YES;
}

webview連接跳轉
-(BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType{
    if (navigationType == UIWebViewNavigationTypeLinkClicked)
    {
        NSURL *url =[request URL];
        NSString *curUrl = [url absoluteString];
        NSLog(@"............%@",curUrl);
        [[UIApplication sharedApplication] openURL:[NSURL URLWithString:curUrl]];
        return false;
    }
    return  YES;
}

scrollView 的偏移量
  CGFloat pageWidth = scrollView.frame.size.width;
    int page = floor((scrollView.contentOffset.x - pageWidth / 2) / pageWidth) + 1;
    downpageControl.currentPage = page;



viewControl的view放到view上須要當前view control指針指向他


判斷團購時間

- (NSString *)intervalFromLastDate1: (NSString *) dateString1
{
    NSArray *timeArray1=[dateString1 componentsSeparatedByString:@"."];
    dateString1=[timeArray1 objectAtIndex:0];
    
    
    NSDate *  currentTime=[NSDate date];
    NSDateFormatter *date=[[NSDateFormatter alloc] init];
    [date setDateFormat:@"yyyy-MM-dd"];
    
    
    
    NSString *  locationString=[date stringFromDate:currentTime];
    
    NSLog(@"locationString:%@",locationString);
    
    //    [date release];
    
    
     NSString * startDate = self.stateArray[0];
    NSDate *d1=[date dateFromString:dateString1];
    
    NSTimeInterval late1=[d1 timeIntervalSince1970]*1;
    
    
    
    NSDate *d2=[date dateFromString:startDate];
    
    NSTimeInterval late2=[d2 timeIntervalSince1970]*1;
    
    
    
    NSTimeInterval cha=late1-late2;
    NSString *timeString=@"";
    
    
    
    if (cha<0) {
        
        timeString=[NSString stringWithFormat:@"未開始"];
        
    }
    
    
    [date release];
    
    
    return timeString;
}
判斷字典爲空
(    1.    NSString *value = [dictionary objectForKey:@"First"]; 
    2.    if ((NSNull *)value == [NSNull null]) { 
    3.    } 

 

 

 

 #遍歷找到btn
    UITableViewCell * cell = (UITableViewCell*)[btn superview];
    
    for (UIButton * btn1 in [cell subviews]) {
        if ([btn1 isMemberOfClass:[UIButton class]]) {
            if (btn1==btn) {
                 btn1.backgroundColor = [UIColor redColor];
            }
            else
            {
                btn1.backgroundColor = [UIColor grayColor];

            }
            
        }

    }

 

//氣泡拉伸

textBackImageView.image = [[UIImage imageNamed:@"ReceiverTextNodeBkgHL_ios7"]resizableImageWithCapInsets:UIEdgeInsetsMake(28, 18, 25, 10)] ;
相關文章
相關標籤/搜索