UIWebView加上safari風(fēng)格前進(jìn)后退按鈕
Posted on 2011-06-02 22:46 冷鋒 閱讀(3829) 評(píng)論(0) 編輯 收藏 引用 所屬分類: IOS開發(fā)今天在寫程序內(nèi)打開網(wǎng)頁的功能,寫工具條的時(shí)候發(fā)現(xiàn)系統(tǒng)圖標(biāo)里面竟然沒有后退按鈕,,由于我這個(gè)是靜態(tài)庫工程,不可能自己弄張圖上去,不然使用本庫的時(shí)候還得附上圖片,經(jīng)過一下午的搜索,終于找到個(gè)比較靠譜的,這哥們硬是用代碼給畫出來個(gè)箭頭了(話說如果是其他不規(guī)則的圖形要咋辦呢?),還是google管用啊,baidu非常非常非常。。。垃圾。
Code Example: Drawing the iPhone Back Button(轉(zhuǎn)載)

Recently, I had need to provide a back button similar to the one used in Mobile Safari for a consulting project.
Many of the buttons used in the built-in iPhone applications are made available via the SDK with built in button types and graphics. Unfortunately, the back button is not one of these.
Because I needed to display the toolbar button from inside a static library which can not include images, I had to render the back arrow directly in code.
Since this was a bit time consuming, I thought I would share in hopes that it saves someone else a little bit of time.
- (CGContextRef)createContext { // create the bitmap context CGColorSpaceRef colorSpace = CGColorSpaceCreateDeviceRGB(); CGContextRef context = CGBitmapContextCreate(nil,27,27,8,0, colorSpace,kCGImageAlphaPremultipliedLast); CFRelease(colorSpace); return context; } - (CGImageRef)createBackArrowImageRef { CGContextRef context = [self createContext]; // set the fill color CGColorRef fillColor = [[UIColor blackColor] CGColor]; CGContextSetFillColor(context, CGColorGetComponents(fillColor)); CGContextBeginPath(context); CGContextMoveToPoint(context, 8.0f, 13.0f); CGContextAddLineToPoint(context, 24.0f, 4.0f); CGContextAddLineToPoint(context, 24.0f, 22.0f); CGContextClosePath(context); CGContextFillPath(context); // convert the context into a CGImageRef CGImageRef image = CGBitmapContextCreateImage(context); CGContextRelease(context); return image; } - (UIBarButtonItem *)backButton { CGImageRef theCGImage = [self createBackArrowImageRef]; UIImage *backImage = [[UIImage alloc] initWithCGImage:theCGImage]; CGImageRelease(theCGImage); UIBarButtonItem *backButton = [[UIBarButtonItem alloc] initWithImage:backImage style:UIBarButtonItemStylePlain target:self.webView action:@selector(goBack)]; [backImage release], backImage = nil; return [backButton autorelease]; }