1. 程式人生 > >iOS開發中,調整view層級位置的兩個屬性

iOS開發中,調整view層級位置的兩個屬性

控制元件的層級關係和你加入到父檢視的順序有關,也就是先addsubview至父檢視的,層級越低,會被後加入的遮蓋。
可以通過以下函式改變子檢視的層級:

1.Objective-C版本:
將UIView顯示在最前面:
- (void)bringSubviewToFront:(UIView *)view;

將UIView顯示在下面:
- (void)sendSubviewToBack:(UIView *)view;

2.Swift版本:
將UIView顯示在最前面:
open func bringSubview(toFront view: UIView)

將UIView顯示在下面:
open func sendSubview(toBack view: UIView)

下面我們來舉個例項:
1.Objective-C的情況:

UIView *view1 = [[UIView alloc] initWithFrame:CGRectMake(100, 150, 100, 100)];
    view1.backgroundColor = [UIColor redColor];
    [self.view addSubview:view1];

    UIView *view2 = [[UIView alloc] initWithFrame:CGRectMake(150, 200, 100, 100)];
    view2.backgroundColor = [UIColor
greenColor]; [self.view addSubview:view2]; // 以上顯示:紅色檢視(view1)先新增,在下面,綠色檢視(view2)後新增,在上面

如圖:這裡寫圖片描述
修改成如下程式碼:

UIView *view1 = [[UIView alloc] initWithFrame:CGRectMake(100, 150, 100, 100)];
    view1.backgroundColor = [UIColor redColor];
    [self.view addSubview:view1];

    UIView *view2 = [[UIView alloc] initWithFrame:CGRectMake(150
, 200, 100, 100)]; view2.backgroundColor = [UIColor greenColor]; [self.view addSubview:view2]; // 以上顯示:紅色檢視(view1)先新增,在下面,綠色檢視(view2)後新增,在上面 // 新增如下修改層級的程式碼 // 將view2放在最下方 [self.view sendSubviewToBack:view2]; // 將view1放在最上方 [self.view bringSubviewToFront:view1];

這裡寫圖片描述
2.Swift的情況

let view1 = UIView(frame: CGRect(x: 100, y: 150, width: 100, height: 100))
        view1.backgroundColor = UIColor.red
        self.view.addSubview(view1)

        let view2 = UIView(frame: CGRect(x: 150, y: 200, width: 100, height: 100))
        view2.backgroundColor = UIColor.green;
        self.view.addSubview(view2)

        // 以上顯示:紅色檢視(view1)先新增,在下面,綠色檢視(view2)後新增,在上面


        // 新增如下修改層級的程式碼

        // 將view2放在最下方
        self.view.sendSubview(toBack: view2)

        // 將view1放在最上方
        self.view.bringSubview(toFront: view1)

它的效果這裡不再說,效果和Objective-C的一樣,讀者也可以自己試一下。

相關推薦

iOS開發調整view層級位置屬性

控制元件的層級關係和你加入到父檢視的順序有關,也就是先addsubview至父檢視的,層級越低,會被後加入的遮蓋。 可以通過以下函式改變子檢視的層級: 1.Objective-C版本: 將UIView顯示在最前面: - (void)bringSubvi

iOS開發點選介面空白處或點選背景收起鍵盤

在iOS開發中,我們會在UITextView、UITextField等控制元件裡編輯或者輸入文字結束後,需要關閉鍵盤。最經常的是,點選介面空白處或點選背景收起鍵盤。 通過在在viewDidLoad中新

ios 開發如何設定 uitabbar 裡面 tabbaritem 不顯示文字只顯示圖片圖片垂直居中?

// 矯正TabBar圖片位置,使之垂直居中顯示  CGFloat offset = 5.0;  for (UITabBarItem *item in self.tabbar.items) {  item.imageInsets = UIEdgeInsetsMake(offset, 0, -offset,

IOS開發SVN如何恢復到某一個版本(以Cornerstone為例)

Cornerstone是mac作業系統上一款比較流行的SVN版本管理工具。 如何恢復到某一版本呢? 1。選中你要恢復的工程 2.點選“Working Copy”--->>"Revert..."。 3. 選擇你要恢復的版本號,然後點選“Revert”。 4.

iOS開發應用內直接跳轉到Appstore評分

1.進入appstore中指定的應用     App Store 上評論的連結地址是 itms-apps://ax.itunes.apple.com/WebObjects/MZStore.woa/wa/viewContentsUserReviews?type=Purple+

iOS開發對請求資料出現的一些簡單處理

這裡呢是整理的一位老鳥的東西,好東西得分享 大致實現思路就是迴圈便利做比較,如果發現是NSNull型別的就把值改為空字串;這樣的好處就是當資料請求回來,刪除一下資料裡面為<null>型別的東西,避免在直接取的時候產生程式崩潰問題; 兩個方法,一個返回NSA

在vuemethods和computed這方法的區別。

        我們可以使用methods來代替computed,實際上效果是一樣,其中methods【有括號()】,computed不帶括號。        computed是基於它的依賴快取,只有相關依賴發生改變時才會重新取值。        methods在重新渲染的時

關於TextView 設定一行顯示字數的屬性: maxEms 與 maxLength

  這兩天在做listView顯示資訊時,每個Item顯示兩個TextView 後來因為前一個ListView顯示的資訊太長了就直接把後面的資訊給覆蓋了,百度下發現TextView還有一個屬性關於限制

iOS開發view上的button不響應點選事件

iOS button addTarget 無法響應事件 1.問題描述 封裝了一個XYAlterview,繼承於UIView,但button addTarget 無法響應事件. 2.問題重現 @interface XYAlertView : UIView @end XYAlt

iOS 開發tabBarItem不顯示文字只顯示圖片且圖片居中顯示

//第一頁 HomePageViewController *homePageVC = [[HomePageViewControlleralloc] init]; UINavigationCon

iOS開發的併發、序列佇列同步、非同步任務

在多執行緒開發中我們經常會遇到這些概念:併發佇列、序列佇列、同步任務、非同步任務。我們將這四個概念進行組合會有四種結果:序列佇列+同步任務、序列佇列+非同步任務、併發佇列+同步任務、併發佇列+非同步任

iOS開發配置了國際化檔案但是隻想顯示中文

場景描述:         我的專案配置了國際化檔案,但是英文翻譯還沒有完成,所以,我想在專案中只顯示中文。 解決辦法: 首先,建立NSBundle的Category File->New-&g

iOS的三大定時器 iOS開發定時器經常會用到iOS常用的定時器有三種分別是NSTimeCADisplayLink和GCD。

iOS開發中定時器經常會用到,iOS中常用的定時器有三種,分別是NSTime,CADisplayLink和GCD。 NSTimer 方式1 // 建立定時器 NSTimer *timer = [NSTimer scheduledTimerWithTimeInterval:2 target:

ios開發在Xcode新增多targets進行版本控制管理多相同內容的專案

 在ios開發時,我們經常會遇到對同一個app開發多個版本(Pro、Lite、Free)的情況,這裡就涉及到xcode裡通過新增多個targets來進行版本控制的問題了,下面就簡單說明一下: 點選左側的工程名稱,右側會出現PROJECT和TARGETS,點選你現在的target,假如叫A,右鍵彈出選單中,選擇

iOS開發瀏覽器能開啟的URLWebView打不開的處理方法

由於內容簡單,載入不出來是編碼不一致的問題,下面是解決方法:         NSString *encodedString = [url stringByAddingPercentEscapesU

iOS開發如遇到頻繁的Http請求如何取消之前已經發送的Http請求?

我有一個TextField,無論什麼時候當我輸入字元的時候,我appending這個字元到我的url,然後傳送一次請求,我現在需要取消之前的請求。例如當我輸入“shampoo”的時候,我會觸發7次代理方法,也就是我會觸發七次不同的網路請求,那麼有一個問題,這七次發出的請求,響

iOS開發SQLite簡單使用(基礎用法:建立表增、刪、改、查)

SQLite,是一款輕型的資料庫,是遵守ACID的關係型資料庫管理系統,它包含在一個相對小的C庫中。它是D.RichardHipp建立的公有領域專案。它的設計目標是嵌入式的,而且目前已經在很多嵌入式產

Unity3d修煉之路:遊戲開發3d數學知識的練習【1】(不斷更新.......)

turn tor rdo pre 長度 scrip 縮放 unity3d float #pragma strict public var m_pA : Vector3 = new Vector3(2.0f, 4.0f, 0.0f); public var m_pB :

iOS開發地圖與定位

視圖 編寫 aps 簡單 -a 第三方 span spa margin   不管是QQ還是微信的移動client都少不了定位功能,之前在微信demo中沒有加入定位功能,今天就寫個定位的小demo來了解一下定位和地圖的東西。地圖和定位看上去是挺高大上一東西。其有使用方法比

iOS開發,獲取iOS設備型號

bsp ios設備型號 isequal uid eve ide inf turn res 1、首先要導入頭文件   #import <sys/utsname.h> 2、代碼如下 - (NSString *)getDeviceVersionInfo{