OObjevtive-c 关于UI Xibs布局界面

—————————————————————————————————————————————————————

ViewController.h文件

#import <UIKit/UIKit.h>

@interface ViewController : UIViewController

@property (weak, nonatomic) IBOutlet UIView *viewOne;
@property (weak, nonatomic) IBOutlet UILabel *lable;

@end
ViewController.m  文件

//Xibs就是布局界面的一种方式。
//创建xib的方法:选择New->File->UserInterface->Empty     设置将要创建Xib的文件名字,

      //============ 第一种:   首先,关于Xib加载    这里以“XibLoadView”为例==========//

//--------------进入XibLoadView.xib文件-----------

//创建好Xib文件后,我们看到Xib中没有任何页面,拖进一个View控件,此时View控件不能调节大小,设置View的size是Freeform,拖入应有的控件。

//--------------进入Viewcontroller.m文件------------
//1.加载Xib文件。
/*
bundle是一个目录,其中包含了程序会使用到的资源. 这些资源包含了如图像,声音,编译好的代码,nib文件(用户也会把bundle称为plug-in). 对应bundle,cocoa提供了类NSBundle.
我们的程序是一个bundle. 在Finder中,一个应用程序看上去和其他文件没有什么区别. 但是实际上它是一个包含了nib文件,编译代码,以及其他资源的目录. 我们把这个目录叫做程序的main bundle

通过使用下面的方法得到程序的main bundle
NSBundle *myBundle = [NSBundle mainBundle];//一般我们通过这种方法来得到bundle.
一旦我们有了NSBundle 对象,那么就可以访问其中的资源了
*/

//加载方法:[ [ NSBundle mainBundle ] loadNibNamed:@"Xib文件名" owner:nil options:nil ] ;

//============第二种    其次,关于Xib控件属性    这里以“XibViewOne”为例==========//
//与第一种方法的不同,这样的Xib可以获得控件的对象,设置每一个控件的属性

//--------------进入XibLoadView.xib文件-----------

//创建好Xib文件后,我们看到Xib中没有任何页面,拖进一个View控件,此时View控件不能调节大小,设置View1的size是Freeform后在看,这是View就可以改变大小了。调整好View的大小。设置backgroundColor的颜色以便确认是否加载成功。拖Label控件标示说明当前View

//--------------进入Viewcontroller.h文件------------
//拖线,将控件拖进viewController的接口文件里,注意要将file‘s owner的class变为ViewController.

//--------------进入Viewcontroller.m文件------------
//加载Xib。注意owner变量为self

     //============第三种    关于Xib控件    这里以“XibViewTwo”为例,创建Class名为ViewTwo==========//
//这种是将Xib文件和Class分开创建,建好后在进行变量关联的
//--------------进入XibLoadView.xib文件-----------

//创建好Xib文件后,拖入需要控件,将控件大小设置好,设置文件的File‘s Owner 对应的Class。设置栏填写ViewTwo

//--------------进入ViewTwo.h文件------------
//拖线。注意:如果创建的为NSObject类需要引入UIKit框架

//--------------进入Viewcontroller.m文件------------
//1.引入头文件,ViewTwo.h    2.实例化ViewTwo的对象
//2.加载Xib。注意owner变量为ViewTwo的对象
//3.获取View

#import "ViewController.h"
#import "ViewTwo.h"
@interface ViewController ()

@end

@implementation ViewController

- (void)viewDidLoad {
    [super viewDidLoad];
    
    //============    关于Xib加载    ==========//

    //加载Xib。当Xib在经过编译链接之后就变为nib文件。nib在bundle目录下,先获取程序的mainbundle,在其中加载指定的nib文件,这里owner为nil是由于,没有owner变量
    
    NSArray * array = [ [ NSBundle mainBundle ] loadNibNamed:@"XibLoadView" owner:nil options:nil ] ;
    
    UIView * ViewLoadFromXib = [ array firstObject ] ;//在取出View时注意,这里我们可以用[ array lastObject ],由于这个Xib只有一个View
    
    [ self.view addSubview : ViewLoadFromXib ] ;//添加到根视图
    
    
    
    //============    其次,关于Xib控件属性    这里以“XibViewOne”为例==========//
    
    NSArray * arrayOne = [ [ NSBundle mainBundle ] loadNibNamed:@"XibViewOne" owner:self options:nil ] ;//这里的owner是
    
    _viewOne = [ arrayOne firstObject ] ;//在取出View时注意,这里我们可以用[ array lastObject ],由于这个Xib只有一个View
    _viewOne.frame=CGRectMake(0, 100, 375, 100);
    
    [ self.view addSubview : _viewOne ] ;//添加到根视图
    
    
    
    //============    关于Xib控件    这里以“XibViewTwo”为例==========//
    //实例化ViewTwo对象
    ViewTwo * viewOnwer = [ [ ViewTwo alloc ] init ] ;
    NSArray * arrayViewTwo = [[ NSBundle mainBundle ] loadNibNamed:@"XibViewTwo" owner:viewOnwer options:nil];
    UIView * view = [ arrayViewTwo firstObject ] ;
    view.frame=CGRectMake(0, 210, 375, 100);
    [email protected]"XibViewTwo-___-";
    [ self.view addSubview:view ] ;
    
    
}

- (void)didReceiveMemoryWarning {
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}

@end
ViewTwo.c文件

#import <Foundation/Foundation.h>
#import <UIKit/UIKit.h>
@interface ViewTwo : NSObject
@property (weak, nonatomic) IBOutlet UILabel *label;
@property (strong, nonatomic) IBOutlet UIView *View;

@end
ViewTwo.m文件

#import "ViewTwo.h"

@implementation ViewTwo

@end
时间: 2024-10-27 03:37:50

OObjevtive-c 关于UI Xibs布局界面的相关文章

我的手机管家(5)骚扰拦截 布局界面

我的手机管家(5)骚扰拦截   布局界面: 添加黑名单, 拦截信息,和电话 主界面: <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_

免费素材:25套免费的 Web UI 设计的界面元素(转)

Web 元素是任何网站相关项目都需要的,质量和良好设计的元素对于设计师来说就像宝贝一样.如果您正在为您的网站,博客,Web 应用程序或移动应用程序寻找完美设计的网页元素,那么下面这个列表会是你需要的. 今天这里收集的免费资源是25套免费的 Web UI 设计的界面元素,用于和Mobile App设计.它包括所有的设计元素的 PSD 格式,某些元素提供矢量格式,可以缩放到任意大小. UI Kit – Free PSD Download Ui Kit [Free PSD] Download Free

UWP学习记录2-设计和UI之布局

UWP学习记录2-设计和UI之布局 1.导航基础知识 应用里,多个页面会有层次关系或者对等关系.这两种关系,通常在一个复杂应用里都会存在,而关系的选定依据: 对于对等导航,一般用选项卡(tabs)或者导航窗(nav)来作为导航元素实现导航跳转.而对于层次关系,则使用中心(hub)来提供子页面的预览或摘要,或者使用大纲(master-details)来实现导航. 除此之外,返回(后退)和链接也可以用来导航.启用系统后退导航支持的方法是注册 BackRequested 事件的侦听器.标题栏后退按钮的

Fragment+TabHost模仿新浪新闻布局界面

Fragment+TabHost模仿新浪新闻布局界面 支持平台:Android   运行环境:Eclipse   开发语言:Java 下载地址:http://sina.lt/yZe 源码简介 采用FragmentTabHost的综合布局实现的新浪新闻的效果. 源码运行截图  

target-densitydpi=device-dpi会使其他ui插件布局变小

target-densitydpi=device-dpi会使其他ui插件布局变小 东哥说:不用rem了,把meta改成这样<meta name="viewport" content="width=720, user-scalable=no, target-densitydpi=device-dpi">就可以直接上px... 这句target-densitydpi=device-dpi是什么意思呢? target-densitydpi这个私有属性,它表示目

在已有QT项目中添加多个UI布局界面

1.在工程中右键->添加新文件,按图选择 2.选择窗口部件 3.创建UI控制类 注意上图红框中命名按实际需要定义,否则后期改动要修改UI文件参数 4.修改UI文件,框1是窗口部件父类,框2是UI界面控件控制的类 5.建立UI控件控制的类 .h文件 #ifndef NEWXMLNODE_H #define NEWXMLNODE_H #include <QDialog> namespace Ui { class NewXmlNode; } class NewXmlNode : public

UI复习-布局管理器GridLayout(计算器界面)

1>GridLayout,4.0版本以上新增的网格布局,以下版本需要引用支撑包 package com.brady.est; import android.annotation.SuppressLint; import android.os.Bundle; import android.support.v7.app.ActionBarActivity; import android.view.Gravity; import android.view.Menu; import android.vi

XML布局界面

Android推荐使用XML布局文件来定义用户界面,而不是使用Java代码来开发用户界面,因此基础所有组件都提供了两种方式来控制组件的行为:1.在XML布局文件中通过XML属性进行控制:2.在Java程序代码中通过调用方法进行控制:完全使用Java代码来控制UI界面不仅繁琐.而且不利于解耦:而完全利用XML布局文件来控制UI界面虽然方便.便捷,但难免有失灵活. 当在Android应用的res/layout目录下定义一个主文件名任意的XML布局文件之后(R.java会自动收录该布局资源),Java

Solr UI Admin管理界面使用说明

Notice:本说明基于Solr6.4.2. 本文讨论的是如何使用Solr Admin UI. 图1.SolrCloud模式 图2.单机Solr模式 Logging:展示Solr的日志,不用去后台查日志,并且还可以用来配置打印日志级别.Cloud:仅在SolrCloud模式下显示,本文中的例子使用的是单机模式,故暂不作介绍. CoreAdmin:支持SolrCore的基本操作.(点此查看什么是SolrCore)Java Properties:Java相关属性和配置.Thread Dump:查看每