en

hi, it seems you are using microsoft internet explorer. it doesn't match web standard and causes problems browsing this site. please please please use mozilla firefox or google chrome instead. thank you!

zh

哦哦!您正在使用Internet Explorer 瀏覽器,它與我們的網頁標準並不相容,可能會導致畫面顯示不正常。
請改用 Mozilla Firefox 或者 Google Chrome 才能正常瀏覽本網站,謝謝!

8.23.2011

CMPopTipView 提示訊息

 

CMPopTipView 是由 Chris Miles 所撰寫的 Open Source,它提供一種類似 UICalloutView 的效果,由於整個 Tap View 的產是使用 Core Graphic 來繪製,除了可以自行設定顏色外,變化性也更高,關於更多 CMPopTipView 資訊可以參考文章最後的連結。

雖然說 Source Code 中並沒有針對點擊畫面來撰寫事件,但是我們仍然可以透過取得點擊畫面時的座標位置,製作出一個暫時的 UIView 來使用產生 TapView 的方法,其程式碼如下。

//點擊畫面時所觸發的函式
- (void) touchesBegan:(NSSet*)touches withEvent:(UIEvent*)event {

    //取得點擊的座標位置
    CGPoint point = [[touches anyObject] locationInView:self.view];

    // Toggle popTipView when a standard UIButton is pressed
    if (nil == roundRectButtonPopTipView) {
        roundRectButtonPopTipView = [[[CMPopTipView alloc] initWithMessage:@"Hi Furnace iOS"] autorelease];
        roundRectButtonPopTipView.delegate = self;
        roundRectButtonPopTipView.backgroundColor = [UIColor orangeColor];
        roundRectButtonPopTipView.textColor = [UIColor whiteColor];

        //製作暫時的UIView
        UIView *theView = [[UIButton alloc]initWithFrame:CGRectMake(point.x, point.y, 0.0, 0.0)];
        [roundRectButtonPopTipView presentPointingAtView:theView inView:self.view animated:YES];
        [theView release];
    }
    else {

        // Dismiss
        [roundRectButtonPopTipView dismissAnimated:YES];
        roundRectButtonPopTipView = nil;
    }
}

來源位址:GitHub
使用版本:June 21, 2011
測試環境:iOS SDK 4.3







2 則留言:

  1. 匿名2/15/2012

    請問:
    照上面打的code有error
    roundRectButtonPopTipView
    CMPopTipView
    這兩個是甚麼
    可以詳解嗎?

    回覆刪除
  2. roundRectButtonPopTipView 你要先宣告唷,它是 CMPopTipView 型態的物件,你可以參考 Open Source 的來源網站,上面程式碼只是我修改 Open Source 部分程式碼的結果。

    回覆刪除