iOS專案開發實戰——UIView的子檢視和父檢視
iOS控制元件其實是有父子關係的,可以進行相互包含。我們通過程式碼來演示一下:
#import "ViewController.h"
@interface ViewController ()
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
UIView *view1 = [[UIView alloc] init];
view1.frame = CGRectMake(50, 50, 200, 200);
view1.backgroundColor = [UIColor yellowColor];
[self.view addSubview:view1];
//frame是實際檢視大小;
CGFloat x = view1.frame.origin.x;//獲取view的橫座標;
CGFloat y = view1.frame.origin.y;//獲取view的縱座標;
CGFloat width = view1.frame.size.width;//獲取view的寬度;
CGFloat height = view1.frame.size.height;//獲取view的高度;
//bounds是邊框大小;x,y永遠為零;
CGFloat xBounds = view1.bounds.origin.x;//獲取view的橫座標;
CGFloat yBounds = view1.bounds.origin.y;//獲取view的縱座標;
CGFloat widthBounds = view1.bounds.size.width;//獲取view的寬度;
CGFloat heightBounds = view1.bounds.size.height;//獲取view的高度;
//center 中心點;
CGFloat xCenter = view1.center.x;
CGFloat yCenter = view1.center.y;
NSLog(@"frame x=%.0f y=%.0f width=%.0f height=%.0f",x,y,width,height);
NSLog(@"bounds x=%.0f y=%.0f width=%.0f height=%.0f",xBounds,yBounds,widthBounds,heightBounds);
NSLog(@"center x=%0.f y=%0.f",xCenter,yCenter);
//座標是根據父檢視的位置來設定的,不會跨層;
UIView *view2 = [[UIView alloc] init];
view2.frame = CGRectMake(20, 20, 50, 50);
view2.backgroundColor = [UIColor redColor];
view2.tag = 101;//唯一標示值;
[view1 addSubview:view2];
UIView *view3 = [[UIView alloc] init];
view3.frame = CGRectMake(100, 100, 50, 50);
view3.backgroundColor = [UIColor redColor];
view3.tag = 102;
[view1 addSubview:view3];
//獲取view1的父檢視;
UIView *superView = view1.superview;
superView.backgroundColor = [UIColor grayColor];
//獲取view1的所有子檢視,返回的是陣列;
NSArray *subViewArray = view1.subviews;
for (UIView *subView in subViewArray) {
if (subView.tag == 101) {
subView.backgroundColor = [UIColor blackColor];
} else {
subView.backgroundColor = [UIColor whiteColor];
}
}
//能獲取指定tag識別符號的View;
UIView *v = [view1 viewWithTag:101];
v.backgroundColor = [UIColor purpleColor];
}
@end
實現效果如下:
.
github主頁:https://github.com/chenyufeng1991 。歡迎大家訪問!
相關文章
- iOS開發-檢視與檢視控制器生命週期iOS
- drf : 通用檢視類和(GenericAPIView)5個檢視擴充套件類,九個檢視子類,檢視集。APIView套件
- [Django REST framework - 檢視元件之檢視基類、檢視擴充套件類、檢視子類、檢視集]DjangoRESTFramework元件套件
- 11 UML中的邏輯檢視、程序檢視、實現檢視、部署檢視
- iOS 檢視及匯出專案執行日誌iOS
- iOS開發-列表檢視的基本介紹與使用iOS
- iOS 實現檢視指定圓角iOS
- 集合檢視子類
- [譯] 通過檢視控制器容器和子檢視控制器避免龐大的檢視控制器
- Oracle普通檢視和物化檢視的區別Oracle
- Express 實戰(七):檢視與模板:Pug 和 EJSExpressJS
- 關於開發檢視
- iOS探索:UI檢視之事件傳遞&檢視響應iOSUI事件
- 檢視檔案
- 【SpringBoot實戰】檢視技術-ThymeleafSpring Boot
- django 的類檢視和函式檢視-雜談Django函式
- Idea 建立 父專案和子專案Idea
- 處理專案檢視中的選擇
- 【MySQL】檢視&子查詢MySql
- iOS研發助手DoraemonKit技術實現之Crash檢視iOS
- day04-檢視和檢視解析器
- Django檢視之檢視類和中介軟體Django
- Django的檢視和模板Django
- iOS開發-檢視控制器UINavigationController的介紹與基本使用iOSUINavigationController
- ASP.NET Core 5.0 MVC中的檢視分類——佈局檢視、啟動檢視、具體檢視、分部檢視ASP.NETMVC
- IOS橫線滾動檢視的實現---方式二iOS
- 七個子類檢視 LL
- Linux基楚操作指引【檢視版本、檢視路徑、檢視內容、編輯檔案】Linux
- 手把手教你檢視和分析iOS的crash崩潰iOS
- win10檢視子網ip方法 win10怎麼檢視子網掩碼Win10
- win10怎麼檢視最近修改的檔案_win10如何檢視最近開啟的檔案Win10
- iOS 11開發教程(二十二)iOS11應用檢視實現按鈕的響應(2)iOS
- CI快速開發電子商城專案視訊教程
- 淺析 Flutter 與 iOS 的檢視橋樑FlutteriOS
- iOS 檢視控制器的生命週期iOS
- 檢視磁碟使用空間和檔案大小
- Mac檢視隱藏的檔案Mac
- Linux系統中什麼是父目錄?如何檢視父目錄?Linux
- 人臉識別檢測專案實戰