俄罗斯贵宾会-俄罗斯贵宾会官网
做最好的网站

IOS之UI--小实例项目--添加商品和商品名(使用xib文件终结版) + xib相关知识点总结俄罗斯贵宾会

对于tkinter的各个控件,可以参看  : https://blog.csdn.net/weixin_38532159/article/details/78379523

 

这个已经比较全面了

添加商品和商品名小项目(使用xib文件终结版)

小贴士:博文末尾有项目源码在百度云备份的下载链接。


今天利用tkinter实现一下百度,抖音的加载- - 又是造轮子,首先看一下实现的效果图俄罗斯贵宾会 1

俄罗斯贵宾会 2

俄罗斯贵宾会 3

俄罗斯贵宾会 4

俄罗斯贵宾会 5

俄罗斯贵宾会 6

俄罗斯贵宾会 7

俄罗斯贵宾会 8

俄罗斯贵宾会 9

导包:

xib相关知识点总结


1 from tkinter import *
2 import time

01-基本使用

一开始使用xib的时候,如果要使用自定义view的代码,就需要将xib的class设置为那个view的类型,然后我觉得就可以直接使用了,其实不是这样的,还需要代码加载nib文件,并且最后返回数组对象才能使用哦。

关于XIb就看截图ppt 外加截图代码 可以用在自定义控件上

加载xib文件的过程

xib文件 -编译xib成功-> nib文件

加载nib文件的第一种方式

NSArray* array  = [[[NSBundle mainBundle]
 loadNibNamed:NSStringFromClass(self) owner:nil options:nil] lastObject]

加载nib文件的第二种方式

UINib* nib = [UINib nibWithNibName:@"Test" bundle:[NSBundle mainBundle]];
NSArray* array = [nib instantiateWithOwner:nil options:nil];

在第二种方式中bundle:后面的参数可以为nil,如果为nil,默认也是会加载NSBundle的mainBundle方法返回的值。

返回的是数组对象,因为加载xib获取的控件可能是多个,所以默认返回的是存储这些多个控件的数组对象

需要注意的是tkinter中的t必须是小写字母

02-xib和storyboard对比:

  • 共同点:
    • 都用来描述软件界面
    • 都用Interface Builder工具来编辑
    • 本质都是转换成代码去创建控件
  • 不同点
    • xib是轻量级的,用来描述局部的UI界面
    • storyboard是重量级的,用来描述整个软件的多个界面,并且能展示多个界面之间的跳转关系

主要控件及自变量:

03-拖线来引用子控件

使用xib总结步骤:

新建xib文件,设置好控件
新建两个继承UIView的类,类名假设为MyUIView
然后将xib文件的类型设置为MyUIView
然后为MyUIView添加模型对象的属性,并为这个属性写好set方法
托线,把xib的控件连接到MyUIView上,最好拖放在类扩展里。

有PPT的话,可以直接拿来做笔记

 1      master = Tk()
 2         master.title('this is a waitpic Demo')
 3         title = Label(master, text='请选择等待图案',font='15',bg='yellow',fg='grey')
 4         title.pack(fill=X)
 5 
 6         self.canvaswidth = 1000
 7         self.canvasheight = 600
 8         self.centerx = self.canvaswidth // 2
 9         self.centery = self.canvasheight // 2
10         self.topx = self.centerx - 50
11         self.topy = self.centery -50
12         self.bottomx = self.centerx + 50
13         self.bottomy = self.centery + 50
14         self.mycanvas = Canvas(master, width=self.canvaswidth,height=self.canvasheight, bg='White')
15         self.mycanvas.pack() 
16         self.mycanvas.create_text(100,20,text='happy life exeryday')
17 
18         bt1 = Button(master,text='图案1',command=self.display1)
19         bt2 = Button(master,text='图案2',command=self.display2)
20         btclear = Button(master,text='清空',command=self.clearCanvas)
21         bt1.pack(side=LEFT)
22         bt2.pack(side=LEFT)
23         btclear.pack(side=RIGHT)

04-xib的加载原理

xib的加载过程

加载xib文件 首先解析xib文件的根节点,并通过class设置创建对应的对象 然后解析属性尺寸中的尺寸设置frame ...等等相关属性的设置... 遇到子控件,同样创建子控件,并设置属性,最后被add到父控件

对于xib文件中,如果层级关系是:

  • UIView 可以通过设置class绑定到自定义的类文件
    • UILabel 子控件也可以通过设置class绑定到自定义的类文件
    • UIImageView 最后xib的整个组合控件各个部分都可以自定义

 伪代码:

1 -(void)loadXib
2 {
3     父控件类名* 父控件别名 = [[父控件类名 alloc] init];
4     父控件别名.frame = CGRectMake(0,0,70,90);
5 
6     子控件类名* 子控件别名 = [[子控件类名 alloc] init];
7     ......
8 }

xib的加载过程

1、解析底层的父控件Class,确定类型之后通过这个类型alloc+init创建对象
2、通过xib对应的attribute设置属性,进行属性赋值,比如 别名.frame = frame值
3、接着有子控件的话,就像创建父控件一样创建子控件,包括设置好相关属性,最后添加进父控件。

主要添加控件的逻辑是:

05-xib的注意点

俄罗斯贵宾会 10

俄罗斯贵宾会 11

 

俄罗斯贵宾会 12

 

(添加商品和商品名)项目备份百度云链接:http://pan.baidu.com/s/1pJDzpqF 密码:rbsx

 

 

 

 

俄罗斯贵宾会, 

1.声明一个Tk()对象,或者是frame对象

2.对于控件 :   控件x(tk/frame,**kwargs)

本文由俄罗斯贵宾会发布于编程,转载请注明出处:IOS之UI--小实例项目--添加商品和商品名(使用xib文件终结版) + xib相关知识点总结俄罗斯贵宾会

您可能还会对下面的文章感兴趣: