iOS項目總結(jié)

之前一個月都在忙項目的事贼急,沒有時間來整理,到現(xiàn)在項目基本完成了,總結(jié)一些整合項目過程中遇到的問題赶掖。

iOS UILabel根據(jù)文本寬度改變字體大小

myLabel.adjustsFontSizeToFitWidth = YES;
假設(shè)文字內(nèi)容為@"曾在月光之下望煙花,曾共看夕陽漸降下",Label長度為200七扰,則一行顯示不下奢赂,若設(shè)置此屬性為YES,則會降低字體大小颈走,以顯示全部內(nèi)容膳灶。

如何實現(xiàn)單獨一個單元格的刷新

        NSIndexPath *indexPath=[NSIndexPath indexPathForRow:0 inSection:0];
        [_myTableView reloadRowsAtIndexPaths:[NSArray arrayWithObjects:indexPath,nil] withRowAnimation:UITableViewRowAnimationNone];

通過獲取到當前的單元格位置,并且刷新

iOS懸停列表的實現(xiàn)

- (void)scrollViewDidScroll:(UIScrollView *)scrollView {

    // 保證是我們的tableivew

    if (scrollView == self.tableView) {

        // 保證我們是垂直方向滾動立由,而不是水平滾動

        if (scrollView.contentOffset.x == 0) {

            CGFloat y = scrollView.contentOffset.y;

            // 這個是非常關(guān)鍵的變量轧钓,用于記錄上一次滾動到哪個偏移位置
            static CGFloat previousOffsetY = 0;
            // 向上滾動
               if (y > 0) {

                if (self.headerView.bottomY <= 0) {

                    return;

                }

                

                // 計算兩次回調(diào)的滾動差:fabs(y - previousOffsetY)值

                CGFloat bottomY = self.headerView.bottomY - fabs(y - previousOffsetY);

                bottomY = bottomY >= 0 ? bottomY : 0;

                self.headerView.bottomY = bottomY;

                self.stickyView.y = self.headerView.bottomY;

                self.tableView.frame = CGRectMake(0, self.stickyView.bottomY,

                                                  scrollView.width,

                                                  self.view.height - self.stickyView.bottomY);

                

                previousOffsetY = y;

                

                // 如果一直不松手滑動,重復向上向下滑動時锐膜,如果沒有設(shè)置還原為0毕箍,則會出現(xiàn)馬上到頂?shù)那闆r。

                if (previousOffsetY >= self.headerView.height) {

                    previousOffsetY = 0;

                }

            }

            // 向下滾動

            else if (y < 0) {

                if (self.headerView.y >= 0) {

                    return;

                }

                

                CGFloat bottomY = self.headerView.bottomY + fabs(y);

                bottomY = bottomY <= self.headerView.height ? bottomY : self.headerView.height;

                

                self.headerView.bottomY = bottomY;

                self.stickyView.y = self.headerView.bottomY;

                self.tableView.frame = CGRectMake(0,

                                                  self.stickyView.bottomY,

                                                  scrollView.width,

                                                  self.view.height - self.stickyView.bottomY);

            }

        }

    }

}

將整個界面分成三個部分道盏,通過對列表滑動的y值進行判斷而柑,從而實現(xiàn)整個界面的滑動懸停效果

日期之間相互比較的方法

- (BOOL)isEqualToDate:(NSDate *)otherDate;
與otherDate比較,相同返回YES
- (NSDate *)earlierDate:(NSDate *)anotherDate;
與anotherDate比較荷逞,返回較早的那個日期 
- (NSDate *)laterDate:(NSDate *)anotherDate;
與anotherDate比較媒咳,返回較晚的那個日期
- (NSComparisonResult)compare:(NSDate *)other;
 該方法用于排序時調(diào)用:
 當實例保存的日期值與anotherDate相同時返回NSOrderedSame
 當實例保存的日期值晚于anotherDate時返回NSOrderedDescending
 當實例保存的日期值早于anotherDate時返回NSOrderedAscending

實現(xiàn)類似于刮刮樂效果的核心代碼

- (void)touchesMoved:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event{
 // 觸摸任意位置
 UITouch *touch = touches.anyObject;
 // 觸摸位置在圖片上的坐標
 CGPoint cententPoint = [touch locationInView:self.imageView];
 // 設(shè)置清除點的大小
 CGRect  rect = CGRectMake(cententPoint.x, cententPoint.y, 20, 20);
 // 默認是去創(chuàng)建一個透明的視圖     UIGraphicsBeginImageContextWithOptions(self.imageView.bounds.size, NO, 0);  
 // 獲取上下文(畫板)
 CGContextRef ref = UIGraphicsGetCurrentContext();
    // 把imageView的layer映射到上下文中
 [self.imageView.layer renderInContext:ref];
 // 清除劃過的區(qū)域
 CGContextClearRect(ref, rect);  
 // 獲取圖片
 UIImage *image = UIGraphicsGetImageFromCurrentImageContext();
 // 結(jié)束圖片的畫板, (意味著圖片在上下文中消失)
 UIGraphicsEndImageContext();
 self.imageView.image = image;

在界面的同一位置放置兩張圖片,通過獲取到屏幕點擊的區(qū)域种远,將該區(qū)域的上一部分圖片清除涩澡,也就形成了類似于刮刮樂的效果。

獲取當前操作的系統(tǒng)

#define IOS_VERSION_8  ([[[[UIDevice currentDevice] systemVersion] substringToIndex:1] intValue]>=8)

#define IOS_VERSION_7  ([[[[UIDevice currentDevice] systemVersion] substringToIndex:1] intValue]>=7)
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末坠敷,一起剝皮案震驚了整個濱河市妙同,隨后出現(xiàn)的幾起案子射富,更是在濱河造成了極大的恐慌,老刑警劉巖渐溶,帶你破解...
    沈念sama閱讀 217,826評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件辉浦,死亡現(xiàn)場離奇詭異,居然都是意外死亡茎辐,警方通過查閱死者的電腦和手機宪郊,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,968評論 3 395
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來拖陆,“玉大人弛槐,你說我怎么就攤上這事∫绬” “怎么了乎串?”我有些...
    開封第一講書人閱讀 164,234評論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長速警。 經(jīng)常有香客問我叹誉,道長,這世上最難降的妖魔是什么闷旧? 我笑而不...
    開封第一講書人閱讀 58,562評論 1 293
  • 正文 為了忘掉前任长豁,我火速辦了婚禮,結(jié)果婚禮上忙灼,老公的妹妹穿的比我還像新娘匠襟。我一直安慰自己,他們只是感情好该园,可當我...
    茶點故事閱讀 67,611評論 6 392
  • 文/花漫 我一把揭開白布酸舍。 她就那樣靜靜地躺著,像睡著了一般里初。 火紅的嫁衣襯著肌膚如雪啃勉。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,482評論 1 302
  • 那天双妨,我揣著相機與錄音淮阐,去河邊找鬼。 笑死斥难,一個胖子當著我的面吹牛枝嘶,可吹牛的內(nèi)容都是我干的帘饶。 我是一名探鬼主播哑诊,決...
    沈念sama閱讀 40,271評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼及刻!你這毒婦竟也來了镀裤?” 一聲冷哼從身側(cè)響起竞阐,我...
    開封第一講書人閱讀 39,166評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎暑劝,沒想到半個月后骆莹,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,608評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡担猛,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,814評論 3 336
  • 正文 我和宋清朗相戀三年幕垦,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片傅联。...
    茶點故事閱讀 39,926評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡先改,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出蒸走,到底是詐尸還是另有隱情仇奶,我是刑警寧澤,帶...
    沈念sama閱讀 35,644評論 5 346
  • 正文 年R本政府宣布比驻,位于F島的核電站该溯,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏别惦。R本人自食惡果不足惜狈茉,卻給世界環(huán)境...
    茶點故事閱讀 41,249評論 3 329
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望步咪。 院中可真熱鬧论皆,春花似錦、人聲如沸猾漫。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,866評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽悯周。三九已至粒督,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間禽翼,已是汗流浹背屠橄。 一陣腳步聲響...
    開封第一講書人閱讀 32,991評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留闰挡,地道東北人锐墙。 一個月前我還...
    沈念sama閱讀 48,063評論 3 370
  • 正文 我出身青樓,卻偏偏與公主長得像长酗,于是被迫代替她去往敵國和親溪北。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 44,871評論 2 354

推薦閱讀更多精彩內(nèi)容