iOS - UIScrollView

前言

    NS_CLASS_AVAILABLE_IOS(2_0) @interface UIScrollView : UIView <NSCoding>@available(iOS 2.0, *)       public class UIScrollView : UIView, NSCoding
  • 移動設備的屏幕大小是極其有限的,因此直接展示在用戶眼前的內容也相當有限。當展示的內容較多,超出一個屏幕時,用戶可通過滾動手勢來查看屏幕以外的內容。普通的 UIView 不具備滾動功能,不適合顯示過多的內容,UIScrollView 是一個能夠滾動的視圖控件,可以用來展示大量的內容,并且可以通過滾動查看所有的內容。

  • UIScrollView 的用法很簡單,將需要展示的內容添加到 UIScrollView 中,設置 UIScrollView 的 contentSize 屬性,告訴 UIScrollView 所有內容的尺寸,也就是告訴它滾動的范圍。超出 UIScrollView 邊框的內容會被自動隱藏,用戶可以用過手勢拖動來查看超出邊框并被隱藏的內容。

  • UIScrollView 不僅能滾動顯示大量內容,還能對其內容進行縮放處理,也就是說,要完成縮放功能的話,只需要將需要縮放的內容添加到 UIScrollView 中。

  • 如果 UIScrollView 無法滾動,可能是以下原因:
    • 沒有設置 contentSize
    • scrollEnabled = NO
    • 沒有接收到觸摸事件 userInteractionEnabled = NO
  • UIScrollView 的各種尺寸

    ScrollView5

1、UIScrollView 的創建

  • Objective-C

        UIScrollView *scrollView = [[UIScrollView alloc] initWithFrame:CGRectMake(30, 60, [[UIScreen mainScreen] bounds].size.width - 60, 490)];// 將 scrollView 添加到屏幕[self.view addSubview:scrollView];// 向滾動視圖中添加顯示內容,將 imageView 添加到 scrollView,所有 UIView 子類都可以添加UIImageView *imageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"13"]];[scrollView addSubview:imageView];// 設置滾動的范圍大小,包含隱藏的部分,contentSize 的大小一般大于 frame 屬性設置的可視區的大小scrollView.contentSize = imageView.bounds.size;
  • Swift

        let scrollView:UIScrollView = UIScrollView(frame: CGRectMake(30, 60, UIScreen.mainScreen().bounds.size.width - 60, 490))// 將 scrollView 添加到屏幕self.view.addSubview(scrollView)// 向滾動視圖中添加顯示內容,將 imageView 添加到 scrollView,所有 UIView 子類都可以添加let imageView:UIImageView = UIImageView(image: UIImage(named: "13"))scrollView.addSubview(imageView)// 設置滾動的范圍大小,包含了隱藏的部分,contentSize 的大小一般大于 frame 屬性設置的可視區的大小scrollView.contentSize = imageView.bounds.size
  • Storyboard

    • 在 Storyboard 上添加 Scroll View 控件,在 Scroll View 控件上添加其它控件,如 ImageView 控件。
      • 在 Storyboard 中設置的 Scroll View 控件背景在程序運行時才能顯示出來。

      ScrollView2

    • 將 Scroll View 控件拖線到 View Controller 代碼中,設置 contentSize 的大小。

          @interface ViewController ()@property (nonatomic, weak) IBOutlet UIScrollView *scrollView;@end@implementation ViewController- (void)viewDidLoad {[super viewDidLoad];// 設置滾動的范圍大小self.scrollView.contentSize = CGSizeMake(364, 364);}@end
    • 運行顯示效果

      ScrollView3ScrollView4

2、UIScrollView 的設置

  • Objective-C

        // 設置滾動條的風格/*UIScrollViewIndicatorStyleDefault,   // 灰色樣式,默認UIScrollViewIndicatorStyleBlack,     // 黑色樣式UIScrollViewIndicatorStyleWhite      // 白色樣式*/scrollView.indicatorStyle = UIScrollViewIndicatorStyleDefault;// 設置是否顯示滾動條scrollView.showsHorizontalScrollIndicator = YES;   // 水平方向scrollView.showsVerticalScrollIndicator = YES;     // 垂直方向// 設置滾動的范圍大小/*告訴 UIScrollView 所有內容的尺寸,也就是告訴它滾動的范圍內容的大小包含了隱藏的部分,contentSize 的大小一般大于 frame 屬性設置的可視區的大小某個值等于 0 時,則 UIScrollView 在此方向上不能滾動,如 CGSizeMake(0, 364),在 x 方向上不能滾動*/scrollView.contentSize = CGSizeMake(364, 364);// 設置四周額外的滾動區域/*在 UIScrollView 的 4 周增加額外的滾動區域一般用來避免 scrollView 的內容被其他控件擋住UIEdgeInsets UIEdgeInsetsMake(CGFloat top, CGFloat left, CGFloat bottom, CGFloat right)*/scrollView.contentInset = UIEdgeInsetsMake(64, 20, 30, 10);// 設置偏移量/*用來表示 UIScrollView 滾動的位置其實就是內容左上角與 scrollView 左上角的間距值CGPointZero 相當于 CGPointMake(0, 0)*/scrollView.contentOffset = CGPointMake(100, 200);[scrollView setContentOffset:CGPointZero animated:YES];// 獲取偏移量CGPoint contentOffset = scrollView.contentOffset;// 獲取子視圖/*水平和垂直滾動條也是 scrollView 的子視圖*/NSArray *subviews = scrollView.subviews;// 獲取顯示內容的高度/*CGRectGetMaxY(CGRect rect) 自動計算最大 Y 坐標值注意 水平和垂直滾動條也是 scrollView 的子視圖,會產生計算錯誤*/// 由最后一個控件計算CGFloat contentH = lastView.frame.origin.y + lastView.frame.size.height;// 使用系統方法計算CGFloat contentH = CGRectGetMaxY(lastView.frame);// 設置點擊狀態欄能否滾動到畫面最頂端/*也可以在協議方法中設置*/scrollView.scrollsToTop = YES;// 設置是否允許手動滾動scrollView.scrollEnabled = YES;// 設置是否整頁移動scrollView.pagingEnabled = NO;// 設置是否開啟彈簧效果scrollView.bounces = YES;// 關閉下沉效果/* 如果 viewController 在導航里,這個 viewController 的第一個子視圖是 ScrollView 或其子類,系統會讓 ScrollView 有個下沉的效果,有時這個效果會跟自己的代碼沖突,通常會把它關掉*/// 判斷是否實現了下沉效果if ([self respondsToSelector:@selector(setAutomaticallyAdjustsScrollViewInsets:)]) {// 關閉下沉效果self.automaticallyAdjustsScrollViewInsets = NO;}// 設置縮放倍數/*需要遵守 <UIScrollViewDelegate> 協議,并實現 viewForZoomingInScrollView 協議方法如果是在模擬器中測試,需要按住 option 鍵再拖動內容*/scrollView.maximumZoomScale = 3;          // 放大倍數,   scrollView.minimumZoomScale = 0.1;        // 縮小倍數// 獲取當前縮放倍數CGFloat zoomScale = scrollView.zoomScale;// 設置代理,需要遵守協議 <UIScrollViewDelegate>scrollView.delegate = self;
  • Swift

        // 設置滾動條的風格/*case Default   // 灰色樣式,默認case Black     // 黑色樣式case White     // 白色樣式*/scrollView.indicatorStyle = .Default// 設置是否顯示滾動條scrollView.showsHorizontalScrollIndicator = true     // 水平方向scrollView.showsVerticalScrollIndicator = true       // 垂直方向// 設置滾動的范圍大小/*告訴 UIScrollView 所有內容的尺寸,也就是告訴它滾動的范圍內容的大小包含了隱藏的部分,contentSize 的大小一般大于 frame 屬性設置的可視區的大小某個值等于 0 時,則 UIScrollView 在此方向上不能滾動,如 CGSizeMake(0, 364),在 x 方向上不能滾動*/scrollView.contentSize = CGSizeMake(364, 364)// 設置四周額外的滾動區域/*在 UIScrollView 的 4 周增加額外的滾動區域一般用來避免 scrollView 的內容被其他控件擋住UIEdgeInsets UIEdgeInsetsMake(CGFloat top, CGFloat left, CGFloat bottom, CGFloat right)*/scrollView.contentInset = UIEdgeInsetsMake(64, 20, 30, 10)// 設置偏移量/*用來表示 UIScrollView 滾動的位置其實就是內容左上角與 scrollView 左上角的間距值CGPointZero 相當于 CGPointMake(0, 0)*/scrollView.contentOffset = CGPointMake(100, 200)scrollView.setContentOffset(CGPointZero, animated: true)// 獲取偏移量let contentOffset:CGPoint = scrollView.contentOffset// 獲取子視圖/*水平和垂直滾動條也是 scrollView 的子視圖*/let subviews:Array = scrollView.subviews// 獲取顯示內容的高度/*CGRectGetMaxY(CGRect rect) 自動計算最大 Y 坐標值注意 水平和垂直滾動條也是 scrollView 的子視圖,會產生計算錯誤*/// 由最后一個控件計算let contentH = lastView.frame.origin.y + lastView.frame.size.height// 使用系統方法計算let contentH = CGRectGetMaxY(lastView.frame)// 設置點擊狀態欄能否滾動到畫面最頂端/*也可以在協議方法中設置*/scrollView.scrollsToTop = true// 設置是否允許手動滾動scrollView.scrollEnabled = true// 設置是否整頁移動scrollView.pagingEnabled = false// 設置是否開啟彈簧效果scrollView.bounces = true// 關閉下沉效果/* 如果 viewController 在導航里,這個 viewController 的第一個子視圖是 ScrollView 或其子類,系統會讓 ScrollView 有個下沉的效果,有時這個效果會跟自己的代碼沖突,通常會把它關掉*/// 判斷是否實現了下沉效果if self.respondsToSelector(Selector("setAutomaticallyAdjustsScrollViewInsets:")) {// 關閉下沉效果self.automaticallyAdjustsScrollViewInsets = true}// 設置縮放倍數/*需要遵守 UIScrollViewDelegate 協議,并實現 viewForZoomingInScrollView 協議方法如果是在模擬器中測試,需要按住 option 鍵再拖動內容*/scrollView.maximumZoomScale = 3      // 放大倍數scrollView.minimumZoomScale = 0.1    // 縮小倍數// 獲取當前縮放倍數let zoomScale:CGFloat = scrollView.zoomScale// 設置代理,需要遵守協議 UIScrollViewDelegatescrollView.delegate = self

3、向 scrollView 添加圖片集

3.1 添加少量圖片

  • 每次添加一張圖片的時候都會創建一個 UIImageView 對象,如果添加的圖片過多或圖片太大會占用大量的內存。

  • Objective-C

        #define WIDTH   [UIScreen mainScreen].bounds.size.width#define HEIGHT  [UIScreen mainScreen].bounds.size.height// 設置 scrollView 的尺寸CGFloat w = WIDTH - 20;CGFloat h = HEIGHT - 40;// 設置圖片數量int count = 5;UIScrollView *scrollView = [[UIScrollView alloc] initWithFrame:CGRectMake(10, 30, w, h)];scrollView.pagingEnabled = YES;[self.view addSubview:scrollView];// 設置 contentSize,水平方向能滾動scrollView.contentSize = CGSizeMake(count * w, 0);// 添加少量圖片for (int i = 0; i < count; i++) {UIImageView *imageView = [[UIImageView alloc] initWithFrame:CGRectMake(i * w, 0, w, h)];imageView.image = [UIImage imageNamed:[NSString stringWithFormat:@"%d.jpg", i]];// 將 imageView 添加到 scrollView 上[scrollView addSubview:imageView];}
  • Swift

        let WIDTH = UIScreen.mainScreen().bounds.size.widthlet HEIGHT = UIScreen.mainScreen().bounds.size.height// 設置 scrollView 的尺寸let w = WIDTH - 20let h = HEIGHT - 40// 設置圖片數量let count:Int = 5let scrollView:UIScrollView = UIScrollView(frame: CGRectMake(10, 30, w, h))scrollView.pagingEnabled = trueself.view.addSubview(scrollView)// 設置 contentSize,水平方向能滾動scrollView.contentSize = CGSizeMake(count * w, 0)// 添加少量圖片for i in 0 ..< count {let imageView:UIImageView = UIImageView(frame: CGRectMake(CGFloat(i) * w, 0, w, h))imageView.image = UIImage(named: String(format: "%d.jpg", i))// 將 imageView 添加到 scrollView 上scrollView.addSubview(imageView)}

3.2 添加大量圖片

  • 只創建 3 個 UIImageView 對象,向 scrollView 添加圖片時復用這 3 個 UIImageView 對象。

  • Objective-C

4、UIScrollView 的協議方法

  • 需遵守協議 UIScrollViewDelegate,并設置代理

  • 設置代理方法:

    • 通過代碼

          // self 就是控制器self.scrollView.delegate = self;
    • 通過 storyboard 拖線

      ScrollView6

  • Objective-C

    • 拖拽

          // 將要開始拖拽- (void)scrollViewWillBeginDragging:(UIScrollView *)scrollView {}// 將要結束拖拽- (void)scrollViewWillEndDragging:(UIScrollView *)scrollView withVelocity:(CGPoint)velocity targetContentOffset:(inout CGPoint *)targetContentOffset {}// 已經結束拖拽,decelerate 松手后 是否有慣性滾動 0:沒有,1:有- (void)scrollViewDidEndDragging:(UIScrollView *)scrollView willDecelerate:(BOOL)decelerate {}
    • 滾動

          // 滾動過程中,只要滾動就會觸發- (void)scrollViewDidScroll:(UIScrollView *)scrollView { }// 已經結束滾動,滾動動畫停止時執行,代碼改變時觸發,也就是 setContentOffset 改變時- (void)scrollViewDidEndScrollingAnimation:(UIScrollView *)scrollView {}
    • 慣性滾動

          // 將要開始慣性滾動- (void)scrollViewWillBeginDecelerating:(UIScrollView *)scrollView {}// 已經結束慣性滾動- (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView {}
    • 滾到頂端

          // 設置點擊狀態欄時是否滾到頂端- (BOOL)scrollViewShouldScrollToTop:(UIScrollView *)scrollView {return YES;}// 已經滾到頂端,點擊狀態欄時調用- (void)scrollViewDidScrollToTop:(UIScrollView *)scrollView {}
    • 縮放

          // 設置被縮放的空間,一個 scrollView 中只能有一個子控件被縮放,如果有很多個子控件縮放時會引起錯亂- (UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView {return [scrollView.subviews[0] viewWithTag:100];}// 將要開始縮放- (void)scrollViewWillBeginZooming:(UIScrollView *)scrollView withView:(UIView *)view {}// 已經結束縮放- (void)scrollViewDidEndZooming:(UIScrollView *)scrollView withView:(UIView *)view atScale:(CGFloat)scale {}// 縮放過程中,只要縮放就會觸發- (void)scrollViewDidZoom:(UIScrollView *)scrollView {}
  • Swift

    • 拖拽

          // 將要開始拖拽func scrollViewWillBeginDragging(scrollView: UIScrollView) {}// 將要結束拖拽func scrollViewWillEndDragging(scrollView: UIScrollView, withVelocity velocity: CGPoint, targetContentOffset: UnsafeMutablePointer<CGPoint>) {}// 已經結束拖拽,decelerate 松手后 是否有慣性滾動 0:沒有,1:有func scrollViewDidEndDragging(scrollView: UIScrollView, willDecelerate decelerate: Bool) {}
    • 滾動

          // 滾動過程中,只要滾動就會觸發,只要滾動就會觸發func scrollViewDidScroll(scrollView: UIScrollView) {}// 已經結束滾動,滾動動畫停止時執行,代碼改變時觸發,也就是 setContentOffset 改變時func scrollViewDidEndScrollingAnimation(scrollView: UIScrollView) {}
    • 慣性滾動

          // 將要開始慣性滾動func scrollViewWillBeginDecelerating(scrollView: UIScrollView) {}// 已經結束慣性滾動func scrollViewDidEndDecelerating(scrollView: UIScrollView) {}
    • 滾到頂端

          // 設置點擊狀態欄時是否滾到頂端func scrollViewShouldScrollToTop(scrollView: UIScrollView) -> Bool {return true}// 已經滾到頂端,點擊狀態欄時調用func scrollViewDidScrollToTop(scrollView: UIScrollView) {}
    • 縮放

          // 設置被縮放的空間,一個 scrollView 中只能有一個子控件被縮放,如果有很多個子控件縮放時會引起錯亂func viewForZoomingInScrollView(scrollView: UIScrollView) -> UIView? {return scrollView.subviews[0].viewWithTag(100)}// 將要開始縮放func scrollViewWillBeginZooming(scrollView: UIScrollView, withView view: UIView?) {}// 已經結束縮放func scrollViewDidEndZooming(scrollView: UIScrollView, withView view: UIView?, atScale scale: CGFloat) {}// 縮放過程中,只要縮放就會觸發func scrollViewDidZoom(scrollView: UIScrollView) {}

5、Storyboard 中設置

  • 在 Storyboard 場景中設置

    • Scroll View

      993906-20160809165102231-1074774714.png

      Style滾動條顏色類型
      Scroll Indicators
      -- Shows Horizontal Indicator顯示水平滾動條
      -- Shows Vertical Indicator顯示垂直滾動條
      Scrolling
      -- Scolling Enabled可以滾動
      -- Paging Enabled按頁面滾動
      -- Direction Lock Enabled滾動方向固定
      Bounce
      -- Bounces啟動彈簧效果
      -- Bounce Horizontal水平彈簧效果
      -- Bounce Vertical垂直彈簧效果
      Zoom最小/最大縮放值
      Touch
      -- Bounces Zoom
      -- Delays Content Touches
      -- Cancellable Content Touches
      Keyboard鍵盤設置
  • 在 Storyboard 場景綁定的 Controller 中設置

    • 在 Storyboard 添加的 ScrollView 上需在其上添加子視圖作為 ContentView,并添加子視圖的約束,ScrollView 才能夠計算 contentSize 的大小,子視圖才能夠滾動。

    • 若要在 Storyboard 的 ScrollView 上添加一個不隨 ContentView 滾動的視圖,需在 ViewController 上添加一個和 ScrollView 相同位置大小的視圖,并設置不滾動視圖相對于該視圖的約束。

轉載于:https://www.cnblogs.com/QianChia/p/5753169.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/395398.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/395398.shtml
英文地址,請注明出處:http://en.pswp.cn/news/395398.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

機器學習的展望

現階段越來越多的投入到機器學習的熱潮中來&#xff0c;有的人很是興奮&#xff0c;認為這是一場新和革命&#xff0c;一場終極人工智能來臨的前夜。也有人表示悲觀&#xff0c;認為不僅機器學習不代表終極人工智能&#xff0c; 也還非常不成熟。 大量的新生代投入到這個領域&a…

BZOJ3453 XLkxc(拉格朗日插值)

顯然f(i)是一個k2項式&#xff0c;g(x)是f(i)的前綴和&#xff0c;則顯然其是k3項式&#xff0c;插值即可。最后要求的東西大膽猜想是個k4項式繼續插值就做完了。注意2p>maxint…… #include<iostream> #include<cstdio> #include<cmath> #include<cs…

電郵地址_利用這些簡單的技巧來充分利用電子郵件的強大功能

電郵地址Let’s talk about some email features that are surprisingly under-used, and that can really benefit you — if you know how to use them. This article is suitable for both users and developers who want to become email Jedi.讓我們討論一些電子郵件功能&…

inputstream重新賦值之前需要close嗎_變量提升真的搞懂了嗎?打臉的一道題

變量提升真的搞懂了嗎&#xff1f;打臉的一道題我們知道JS代碼在執行之前&#xff0c;會做一系列的事情&#xff0c;其中就包括變量提升&#xff0c;原本以為把變量提升搞懂的我&#xff08;因為這兩天一直在研究變量提升&#xff0c;自我感覺已經很良好了&#xff0c;哈哈哈&a…

html5語義化 兼容,HTML5語義化標簽,兼容性問題

HTML5不僅僅作為HTML標記語言的一個最新版本&#xff0c;更重要的是它制定了web應用開發的一系列標準&#xff0c;成為第一個將web做為應用開發平臺的HTML語言。HTML5定義了一系列的新元素&#xff0c;如新語義化標簽&#xff0c;智能表單&#xff0c;多媒體標簽等&#xff0c;…

Swift之 vm10虛擬機安裝Mac OS X10.10教程

VM10裝Mac OS X 10.9.3及更新到Mac OS X 10.10,讓你的windows也能玩Swift 。 近期WWDC放出終極大招——新的編程語言Swift(雨燕),導致一大波程序猿的圍觀和躍躍欲試。當然了,工欲善其事,必先利其器,所以對于那些沒有Mac又想要嘗鮮的小伙伴肯定非常為難。可是&#xff0c;請放…

如何使用json開發web_如何通過使用JSON Web令牌簡化應用程序的身份驗證

如何使用json開發webby Sudheesh Shetty由Sudheesh Shetty 如何通過使用JSON Web令牌簡化應用程序的身份驗證 (How to simplify your app’s authentication by using JSON Web Token) Every application we come across today implements security measures so that the user…

c++ 實現錄音并且指定到文件_通話自動錄音,留下美好回憶,記錄完整錄音證據...

手機通話&#xff0c;如果自動錄音多好&#xff0c;許多人與我一樣抱有這個想法。記得華為Android版本5.0時代&#xff0c;手機沒有自動錄音功能&#xff0c;我一直到網上下載自動通話錄音軟件&#xff0c;有時甚至是下載ROOT版的帶自動通話功能的EMUI版本進行刷機安裝。那個時…

2639-Bone Collector II (01背包之第k優解)

題目鏈接&#xff1a; http://acm.hdu.edu.cn/showproblem.php?pid2639 求第k優解的關鍵代碼&#xff1a; 用兩個數組記錄兩種狀態&#xff08;選擇或不選擇&#xff09;&#xff0c;并且只要記錄前k次。在這兩個數組中都是前k次可能的最優解。所以我們只要把這兩個數組做比較…

html自動按鍵,VBS腳本和HTML DOM自動操作網頁

本來是想通過JS實現對其他頁面的控制&#xff0c;發現跨域無法獲取頁面DOM來操作。接著考慮bat&#xff0c;發現也實現不了&#xff0c;于是想到vbs。vbs還是很強大啊&#xff0c;病毒之類很多都是vbs腳本啊。vbs打開瀏覽器&#xff0c;然后通過dom來操作頁面&#xff0c;可以實…

opencv在同一窗口打印多張圖片

首先&#xff0c;由于cv2處理的圖片是通過ndarray的格式操作的&#xff0c;也就是說通過array的拼接就可以實現圖片的拼接&#xff0c;那么之后就可以通過簡單的imshow將合并的圖片打印從而達到在一個窗口中顯示多張圖片的目的。 import cv2 import numpy as npimg1 cv2.imrea…

dj打碟怎么學_學DJ打碟 - Rane聲卡連接

上一篇內容中&#xff0c;老師講過在學DJ打碟的時候&#xff0c;是離不開對軟件方面的操作&#xff0c;其實每一個學習過程&#xff0c;當你學會之后&#xff0c;在“回頭看”的時候&#xff0c;都會覺得&#xff1a;原來學DJ打碟這么簡單啊&#xff0c;這就是已經學習過的人會…

微信企業號第三方應用開發[一]——創建套件

注&#xff1a;文中綠色部分為摘自微信官方文檔 第三方應用提供給企業的是一個應用&#xff0c;但是應用必須在套件下創建&#xff0c;所以第一步是要創建套件。 注冊成為應用提供商&#xff0c;必須輸入以下信息&#xff1a; 信息項要求及說明企業Logo應用提供商的企業Logo&am…

advanced east_SpriteKit Advanced —如何構建2,5D游戲(第二部分)

advanced eastby Luke Konior盧克科尼爾(Luke Konior) SpriteKit Advanced —如何構建2,5D游戲(第二部分) (SpriteKit Advanced — How to build a 2,5D game (Part II)) 介紹 (Intro) This article shows how to write basic shaders in the SpriteKit. It’s split into two…

html原生上傳,一個基于HTML5及原生JS的文件上傳組件--JohnUploader

運行效果圖一、組件介紹基本特點基于HTML5的FileReader和FormData可以完成多文件選擇&#xff0c;并預覽完成文件的異步上傳原生XHR對象&#xff0c;適配多瀏覽器代碼class JohnUploader{url;fileField;vollay;/**** param url 文件上傳的地址* param fileField 一個"文件…

[20170617]vim中調用sqlplus.txt

[20170617]vim中調用sqlplus.txt --//以前寫過一篇emacs下調用sqlplus的文章,一直想學emacs,受限制自己掌握vim,對學習它沒有興趣,原鏈接如下: --//http://blog.itpub.net/267265/viewspace-1309032/ --//實際上vim也有插件連接數據庫,我覺得不好用,一直沒這樣用. --//今天在整…

centos redis驗證_centos7中安裝、配置、驗證、卸載redis

本文介紹在centos7中安裝、配置、驗證、卸載redis等操作&#xff0c;以及在使用redis中的一些注意事項。一 安裝redis1 創建redis的安裝目錄利用以下命令&#xff0c;切換到/usr/local路徑cd /usr/local鍵入以下命令&#xff0c;新建一個redis目錄&#xff0c;用于放置redis軟件…

實習生解雇_我們解雇了我們的頂尖人才。 我們做出的最佳決定。

實習生解雇by Jonathan Solrzano-Hamilton喬納森索洛薩諾漢密爾頓(JonathanSolrzano-Hamilton) 我們解雇了我們的頂尖人才。 我們做出的最佳決定。 (We fired our top talent. Best decision we ever made.) “You will never be able to understand any of what I’ve create…

微信企業號第三方應用開發[二]——創建應用

在應用套件里添加應用 當你創建完應用套件后&#xff0c;需要在套件配置應用&#xff0c;應用的信息填寫如下。 基本信息&#xff1a; 信息項要求及說明應用Logo應用的Logo&#xff0c;小于2M&#xff0c;640*640&#xff0c;在授權頁會被用于展示。應用名稱應用的名稱&#xf…

es6新增的html標簽,javascript – 如何導入已在html中的標簽中定義的es6模塊?

我可以在我的html文件me.html中定義一個模塊&#xff1a;import Atom from ./atom.js;console.log("definition of getAtom")export default function getAtom(){return new Atom(atom);}console.log("exported getAtom")另見>是否可以將該“匿名”模塊…