【图片浏览器 Objective-C语言】

一、removeFromSuperview方法,

1.从1个View里删除一个控件,

这个方法的签名如下:

- (void)removeFromSuperview;

从父控件中移除,

假如说这里有一个父控件,有一个子控件,

你希望把这个子控件从父控件里移除,

这时候,你希望让谁移除,那就调这个子控件自己的,removeFromSuperview,

就是说,我们想把谁干掉,得让它“自杀”

你不能去“杀它”,

比如说,在上一篇文章的例子中,

点最下面这个按钮的时候,文本框的内容会变成@“试试看”吧,

最下面这个按钮的单击事件如下:

- (IBAction)show:(id)sender{

UITextField *txt = (UITextField *)[self.view viewWithTag:1000];

txt.text = @“试试看”;

}

现在界面上有6个子控件,1个文本框,1个按钮,1个标签,1个按钮,1个View容器,1个文本框

我希望一点最下面这个按钮的时候,把这些子控件全都移除掉,

把这个View下的所有子控件全都移除掉,

其实这儿是不是还有一个黄色的大View啊,

最下面这个文本框算这个大View的子控件吗,不算,

算它的孙控件,

2.这是我们控制器所管理的大View吧

这个大View里面有几个子控件呢,

1个文本框,1个按钮,1个标签,1个按钮,1个黄色的View,

5个子控件,

这个大View只有5个子控件,

最下面那个文本框,不是这个大View的子控件,

是这个大View的孙控件,

所以说,这个大View只有5个子控件,

我希望当点最下面这个按钮的时候,

把这个大View的所有子控件全都删掉,

删掉以后,这个大View里面,就没有控件了吧,

这个时候怎么做,

在最下面这个按钮的单击事件里面,

- (IBAction)show:(id)sender{

//code;

}

首先,我这self.view,

是不是我们这个控制器所管理的那个大View吧

它里面有个subviews,

self.view.subviews,

是不是里面所有的子控件的数组集合,

我们数组有一个方法叫做

lastObject,

或者说,也有一个方法,叫做firstObject,

是不是1回事儿,

lastObject,获得最后一个元素,

firstObject,获得第一个元素吧,

这两个方法的签名如下:

id lastObject

id firstObject

那么,它只要里面还有任何一个元素,

只要有这个子元素,它获取的就不是nil吧

既然不是nil,它就不是false,

所以我可不可以把它作为一个条件,放到这儿,

while(self.view.subviews.firstObject){

statements;

}

只要当前这个view里面的子控件,只要有任何一个子控件,它就不是nil,

只要不是nil,我就让它当前,这个view里面的子控件里面的第一个元素,

self.view.subviews.firstObject,

第一个元素,让它,removeFromSuperview,

while(self.view.subviews.firstObject){

[self.view.subviews.firstObject removeFromSuperview];

}

这样的话,这个控制器所管理的这个View里面,只要有1个子控件,我就把它删一个,有一个删一个,

最后就都怎么样了,是不是都删完了,

点一下最下面这个按钮,是不是都删掉了,

这就是我们这个方法,

removeFromSuperview,

就是把一个子控件从父控件中移除了,

二、图片浏览器控件,

1.这就是图片浏览器,

图片浏览器

2.这就是图片浏览器,仔细观察一下这个效果,

首先,这里是不是有一张图片吧,

上面有个“1/6”,

说明一共有几张图片,6张吧,

这是第几张,当前这儿,第一张吧,

左边还能往前吗,

不能,因为这已经是第一张了,

然后看一下,向右,

右边是不是能点,

点一下,是不是按下去是绿色的吧,

松开,是不是第二张,

第二张,这也是一张图片,第二张,

再往后,是不是还能再点,

再点,这是不是又是1张,

再点,是不是又是1张,

再往后点,又是一张,

点到第一张,向左,不能点了,

点到最后一张,向右,不能点了,

那么,大家分析一下,这个效果里面,用到了几个控件,

1)最上面一个Label,用来显示“1/6”

2)中间的图片,这是按钮,还是按钮,还是专门用来显示图片的图片框,

这个大家用按钮也可以做,但是这个地方,我们用的是图片框,

为什么呢,因为这个不能点,也没有文字,

所以它就是一个普通的图片框,就OK了,

这儿就不需要用按钮了,

所以说,当我们看到一张图片的时候,到底应该用图片框,还是按钮,

取决于,它是只有1个图片吗,它能点吗,它有文字吗,

如果是,又有图片,又有背景图片,还能点,又有文字,

这就一定是按钮,

如果仅仅是一个图片,也不能点,这个时候就是用图片框,就OK了,

所以我们这里用的是一个图片框,

3)向左的按钮,

4)向右的按钮,

5)最下面的标签,

所以说,这个效果需要5个控件,

两个Label,1个图片框,2个按钮,

三、实现图片浏览器效果,

1.首先,我们是不是要把素材先拖进来,

咱们等会儿再拖素材吧,

先把这个界面的控件摆好,

1个Label,

1个图片框,

1)先把1个Label拖上来,

给它写个文字,“1/6”

2)下面有一个图片框,哪个是图片框呢,看到这个了吗,Image View,

是不是里面有一张风景这个图片的控件吧,

这就是图片框,把它拽过来,

3)然后,下面是不是还有个Label,

我们下面再来个Label,

选中第一个Label,按住option键,拖下来,

我想让这个Label居中,怎么办,

这个View整体的宽度,是多少,选中列表中View这个控件,看一下右边的属性,

width,320,height,568,吧

这个Label,width是220,

怎么样让这个Label居中,

320-220是多少,100

100除以2是多少,50,

所以这个Label,距离左边,应该是50,这样的话,它就居中了,

我要里面的文字居中,怎么办,

设置这个Label的Alignment等于“居中”,

是不是文字就居中了吧,

最下面这个标签,把文字改成“标题”,

4)好了,有了这些以后,左右还需要两个按钮吧

先把UIImageView的大小设置一下,让它也居中,width,225,height,225,

最大的View,width,375,减去225,还剩150,所以,这个UIImageView的x,设置为75,就居中了,

左边拖进来一个按钮,咱们设置这个按钮有一个背景图吧,

把素材拷进来,素材,Arrow文件夹,有个“左右”就可以了,

把这个Arrow文件夹,拖到Xcode的Assets.xcassets文件夹里,

这样,我们就有了“左”箭头,禁用状态下的、高亮状态下的、默认状态下的,图片

也有了“右”箭头,禁用状态下的、高亮状态下的、默认状态下的,图片

一共6张图片,

好了,这时候,我们选中“左”这个按钮,

设置它的文字,为“”,空,没有文字,

Type,设置为Custom,

State Config,设置为Default,

Background,设置为left_normal,

State Config,设置为Highlighted,

Background,设置为left_highlighted,

State Config,设置为Disabled,

Background,设置为left_disabled,

它的大小是多少,设置为width,48,height,48,

然后呢,选中这个

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

清风清晨

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值