第二阶段

简介: 第二阶段

13.切换两个view图片的方法??


分析:普通控制器上面放了两个其他控制器的view,下面是切换着这两个控制器的方法

[self.view exchangeSubviewAtIndex:[self.view.subviews indexOfObject:VC2.view] withSubviewAtIndex:[self.view.subviews indexOfObject:VC1.view]];

小技巧:如果你把一个控制器的view添加到一个控制器的view上面,那么你还需要把这个控制器作为其子控制器


另外还可以加动画:代码如下

CATransition *animation = [CATransition animation];
//监听动画的开始和结束
animation.delegate = self;
animation.duration = 3.0;
//设置动画的快慢效果
animation.timingFunction = UIViewAnimationCurveEaseInOut;
animation.type = @"cube";
//设置动画子类型
animation.subtype = kCATransitionFromTop;
//将动画添加到父试图上
[self.view.layer addAnimation:animation forKey:@"test"];

14.如何截取一个网络url字符串的一部分字符串???


  • 分析:运用方法获取字符串的长度来截取其需要的部分,方法的运用以sub为主


image.png


//抽取指定范围的字符串
NSString *string1 = @"0123456789";
NSRange range1 = NSMakeRange(1, 4);//NSMakeRange这个函数的作用是从第0位开始计算,长度为4
NSLog(@"从第0个字符开始,长度为4的字符串是:%@",[string1 substringWithRange:range1]);
NSLog(@"抽取从头开始到第4个字符:%@",[string1 substringToIndex:4]);
NSLog(@"抽取从第6个字符开始到末尾:%@",[string1 substringFromIndex:6]);
NSString *string2 = @"wo shi xiao bai zhu";
NSRange range2 = [string2 rangeOfString:@"bai"];
if (range2.length > 0) {
    NSLog(@"{字符串中“bai”的位置,长度}==%@",NSStringFromRange(range2));
}
//判断在一串字符串中是否找到某个字符串
NSRange range3 = [string2 rangeOfString:@"zhu"];
if (range3.location != NSNotFound) {
    NSLog(@"找到了@“zhu”这个字符串!");
}
else
    NSLog(@"没找到!");


  • 具体代码带变得意思
  • /*
    2016-07-07 11:08:51.167 测试网络字符串的大小以及长度[13783:1156140] 从第0个字符开始,长度为4的字符串是:1234
    2016-07-07 11:08:51.168 测试网络字符串的大小以及长度[13783:1156140] 抽取从头开始到第4个字符:0123
    2016-07-07 11:08:51.168 测试网络字符串的大小以及长度[13783:1156140] 抽取从第6个字符开始到末尾:6789
    2016-07-07 11:08:51.168 测试网络字符串的大小以及长度[13783:1156140] {字符串中“bai”的位置,长度}=={12, 3}
    2016-07-07 11:08:51.168 测试网络字符串的大小以及长度[13783:1156140] 找到了@“zhu”这个字符串!
    */


15.如何让在循环里面设置的button能够进行不同状态显示不同的背景颜色??


分析:最核心的一步是在点击button的时间里面进行所有的button设置为未选中的状态。下面是效果图:


image.png


  • 具体的代码如下:
#import "ViewController.h"
#define a 3
@interface ViewController ()
{
    NSArray *array;
    int margin;
    NSMutableArray *array1;
}
@property(nonatomic,strong)UIButton *button;
@property(nonatomic,strong) UIView *view1;
@end
@implementation ViewController
 - (void)viewDidLoad {
 [super viewDidLoad];
 self.view.backgroundColor = [UIColor magentaColor];
 array1 = [[NSMutableArray alloc]init];
 array = @[@"一",@"二",@"三"];
 margin = 50;
 int tag1 = 100;
 for (int i = 0; i < 3; i++)
 {
  self.button = [[UIButton alloc]init];
  self.button.frame = CGRectMake(margin + i*(margin+(self.view.frame.size.width-(a+1)*margin)/a),300,(self.view.frame.size.width-(a+1)*margin)/a,60);
  self.button.tag = tag1+i;
  self.button.backgroundColor = [UIColor brownColor] ;
  [self.button setTitle:array[i] forState:UIControlStateNormal];
  self.button.titleLabel.font  = [UIFont systemFontOfSize:30];
  [self.button setTitleColor:[UIColor redColor] forState:UIControlStateSelected];
  [self.button setTitleColor:[UIColor greenColor] forState:UIControlStateNormal];
  [self.button addTarget:self action:@selector(clickbutton:) forControlEvents:UIControlEventTouchUpInside];
  if (i == 0) {
      self.button.selected = YES;
  }
  [self.view addSubview:self.button];
  [array1 addObject:self.button];
}
self.view1 = [[UIView alloc]initWithFrame:CGRectMake(50, 365, (self.view.frame.size.width-(a+1)*margin)/a, 5)];
self.view1.backgroundColor = [UIColor greenColor];
[self.view addSubview:self.view1];
}
-(void)clickbutton:(UIButton *)sender
{
for (UIButton *button2 in array1)
{
  button2.selected = NO;
  button2.backgroundColor = [UIColor brownColor];
}
 sender.selected = YES;
 sender.backgroundColor = [UIColor grayColor];
[UIView animateWithDuration:0.5 animations:^{
 self.view1.frame = CGRectMake(sender.frame.origin.x, 365, (self.view.frame.size.width-(a+1)*margin)/a, 5);
}];
}

16.如何使父视图的透明度改变而不影响子类?


简单:一句代码

self.backgroundColor = [[UIColor blackColor] colorWithAlphaComponent:0.2];


目录
相关文章
|
1月前
分布式事务的两阶段提交和三阶段提交分别有什么优缺点?
【9月更文挑战第9天】两阶段提交(2PC)和三阶段提交(3PC)是解决分布式系统事务一致性的机制。2PC实现简单,保证强一致性,但存在同步阻塞、单点故障和数据不一致风险。3PC通过引入超时机制减少阻塞时间,降低单点故障影响,但复杂性增加,仍可能数据不一致,并有额外性能开销。
|
2月前
|
算法
两阶段提交
【8月更文挑战第11天】
35 1
|
2月前
|
设计模式 运维 测试技术
提交阶段
提交阶段
29 0
|
5月前
|
Linux
第一阶段复习总结——第二阶段复习提纲
在紧张的工作和出差中,我完成了第一阶段的复习,覆盖了所有预设内容,后期需要继续加强组网实战和学习阿里云的云速搭(CADT)工具。第二阶段复习计划从2024年3月21日至4月20日,时间延长以确保质量,将利用阿里云在线沙箱进行实践学习。
|
存储 算法 关系型数据库
对比两阶段提交,三阶段提交做了哪些改进?
在分布式系统中,各个节点之间在物理上相互独立,通过网络进行沟通和协调。在关系型数据库中,由于存在事务机制,可以保证每个独立节点上的数据操作满足 ACID。但是,相互独立的节点之间无法准确的知道其他节点中的事务执行情况,所以在分布式的场景下,如果不添加额外的机制,多个节点之间理论上无法达到一致的状态。 在分布式事务中,两阶段和三阶段提交是经典的一致性算法,那么两阶段和三阶段提交的具体流程是怎样的,三阶段提交又是如何改进的呢?
104 0
|
5月前
|
存储 算法 测试技术
科先巴的二阶段算法
科先巴的二阶段算法
122 0
|
编译器
一个hello文件的四个阶段
一个hello文件的四个阶段
76 0
|
存储 算法 NoSQL
分布式事务两阶段提交和三阶段提交有什么区别?
分布式事务两阶段提交和三阶段提交有什么区别?
238 0
分布式事务两阶段提交和三阶段提交有什么区别?
|
JSON 开发工具 数据格式
第一阶段开发遇到的问题
这个问题已经确定好了,就是虚拟机的网络出现了问题,好像是ip地址不一样什么的,重置一下虚拟机即可解决
109 0
|
数据采集 消息中间件 NoSQL
第一阶段总结|学习笔记
快速学习第一阶段总结
第一阶段总结|学习笔记