oc基本控件3

这篇具有很好参考价值的文章主要介绍了oc基本控件3。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

UIButton

//
//  ViewController.m
//  OcDemoTest
//
//  Created by Mac on 2023/7/14.
//

#import "ViewController.h"



@interface ViewController ()


@end

@implementation ViewController


- (void)viewDidLoad {
    [super viewDidLoad];
   // 1 创建按钮对象
    UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom];
    
    // 2 设置frame
    button.frame = CGRectMake(100, 100, 170, 60);
    // 设置背景颜色
    button.backgroundColor = [UIColor redColor];
    // 设置文字
    //button.titleLabel.text = @"普通文字";
    [button setTitle:@"普通文字" forState:UIControlStateNormal];
    // 高亮按钮
    [button setTitle:@"高亮文字" forState:UIControlStateHighlighted];
    
    // 设置文字颜色
    [button setTitleColor:[UIColor greenColor] forState:UIControlStateNormal];
    
    [button setTitleColor:[UIColor yellowColor] forState:UIControlStateHighlighted];
    
    // 阴影颜色
//    [button setTitleShadowColor:[UIColor blackColor] forState:UIControlStateNormal];
//
//    [button setTitleShadowColor:[UIColor whiteColor] forState:UIControlStateHighlighted];
    
    // 偏移量
    //button.titleLabel.shadowOffset = CGSizeMake(1, 2);
    
    // 设置内容图片
    [button setImage:[UIImage imageNamed:@"player_btn_pause_normal"] forState:UIControlStateNormal];
    [button setImage:[UIImage imageNamed:@"player_btn_pause_highlignt"] forState:UIControlStateHighlighted];
//
//    // 设置背景图片
    [button setBackgroundImage:[UIImage imageNamed:@"buttongreen"] forState:UIControlStateNormal];
    [button setBackgroundImage:[UIImage imageNamed:@"buttongreen_highlighed"] forState:UIControlStateHighlighted];
    
    // 禁用
    //button.enabled =NO;
    // 添加到控制器view中
    [self.view addSubview:button];
    
    // 监听方法
   
    [button addTarget:self action:@selector(demo) forControlEvents:UIControlEventTouchUpInside];
}

-(void)demo{
    NSLog(@"点击了按钮");
}


@end

oc基本控件3,oc,ui

oc基本控件3,oc,ui文章来源地址https://www.toymoban.com/news/detail-569560.html

//
//  ViewController.m
//  OcDemoTest
//
//  Created by Mac on 2023/7/14.
//

#import "ViewController.h"



@interface ViewController ()
// 购物车
@property (weak, nonatomic) IBOutlet UIView *shopCarView;
// 全局下标
@property (nonatomic,assign) NSInteger index;
// 添加按钮
@property (weak, nonatomic) IBOutlet UIButton *addButton;
// 删除按钮
@property (weak, nonatomic) IBOutlet UIButton *removeButton;

// 数据数组
@property (nonatomic,strong) NSArray *dataArr;


@end

@implementation ViewController

/**
  懒加载
 作用
 用到的时候再加载
 全局只会被加载一次
 全局都可以使用
 **/
-(NSArray *) dataArr {
    if(_dataArr == nil){
        self.dataArr = @[
            @{@"name":@"单肩包",@"icon":@"danjianbao"},
            @{@"name":@"钱包",@"icon":@"qianbao"},
            @{@"name":@"链条包",@"icon":@"liantiaobao"},
            @{@"name":@"手提包",@"icon":@"shoutibao"},
            @{@"name":@"双肩包",@"icon":@"shuangjianbao"},
            @{@"name":@"斜挎包",@"icon":@"xiekuabao"},
        
        ];
    }
    return _dataArr;
}


- (void)viewDidLoad {
    [super viewDidLoad];
    // 给下标赋值
    self.index = 0;
   
}
// 添加到购物车
- (IBAction)add:(UIButton *)sender {
    // 总列数
    NSInteger allCols = 3;
    // 商品的宽度
    CGFloat width = 80;
    CGFloat height = 100;
    // 求出水平间距 和垂直间距
    CGFloat hMargin = (self.shopCarView.frame.size.width - allCols *width)/(allCols -1);
    CGFloat vMargin = (self.shopCarView.frame.size.height - 2 * height)/1;
    NSInteger index = self.shopCarView.subviews.count;
    // 求出x值
    CGFloat x = (hMargin + width) * (index % allCols);
    CGFloat y = (vMargin + height) *(index/allCols);
    // 设置索引
    
    //创建商品view
    UIView *shopView = [[UIView alloc] init];
    // 设置frame
    shopView.frame = CGRectMake(x, y, 80, 100);
    // 设置背景颜色
    shopView.backgroundColor = [UIColor greenColor];
    // 添加到购物车
    [self.shopCarView addSubview:shopView];
    
    // 创建商品的UIImageView对象
    UIImageView *iconView = [[UIImageView alloc] init];
    iconView.frame = CGRectMake(0, 0, width, width);
    iconView.backgroundColor = [UIColor blueColor];
    [shopView addSubview:iconView];
    
    // 创建商品标题对象
    UILabel *titleLabel = [[UILabel alloc] init];
    titleLabel.frame = CGRectMake(0, width, width, height - width);
    titleLabel.backgroundColor = [UIColor yellowColor];
    titleLabel.textAlignment = NSTextAlignmentCenter; // 居中
    [shopView addSubview:titleLabel];
    
    // 设置数据(方式一)
//    iconView.image = [UIImage imageNamed:@"danjianbao"];
//    titleLabel.text = @"单肩包";
    // 方式二 (不可取,)
//    if(index == 0){
//        iconView.image = [UIImage imageNamed:@"danjianbao"];
//        titleLabel.text = @"单肩包";
//    }else if(index == 1){
//        iconView.image = [UIImage imageNamed:@"danjianbao"];
//        titleLabel.text = @"单肩包";
//    }else if(index == 1){
//        iconView.image = [UIImage imageNamed:@"danjianbao"];
//        titleLabel.text = @"单肩包";
//    }else if(index == 1){
//        iconView.image = [UIImage imageNamed:@"danjianbao"];
//        titleLabel.text = @"单肩包";
//    }
    
    // 方式三 数组
//    NSArray<NSString *> *imageNames = @[@"danjianbao",@"qianbao",@"liantiaobao",@"shoutibao",@"shuangjianbao",@"xiekuabao"];
//    NSArray<NSString *> *titleNames = @[@"单肩包",@"钱包",@"链条包",@"手提包",@"双肩包",@"斜挎包"];
//    iconView.image = [UIImage imageNamed:imageNames[index]];
//    titleLabel.text = titleNames[index];
    
    // 方式四 数组 字典
//    NSArray<NSDictionary *> *dataArr = @[
//        @{@"name":@"单肩包",@"icon":@"danjianbao"},
//        @{@"name":@"钱包",@"icon":@"qianbao"},
//        @{@"name":@"链条包",@"icon":@"liantiaobao"},
//        @{@"name":@"手提包",@"icon":@"shoutibao"},
//        @{@"name":@"双肩包",@"icon":@"shuangjianbao"},
//        @{@"name":@"斜挎包",@"icon":@"xiekuabao"},
//
//    ];
    
    // 设置数据
    NSDictionary *dict = self.dataArr[index];
    iconView.image = [UIImage imageNamed:dict[@"icon"]];
    titleLabel.text = dict[@"name"];
    
    // 设置按钮的状态
    if(index == 5){
        sender.enabled = NO;
    }
    
    // 设置删除按钮的状态
    self.removeButton.enabled = YES;
    
    
}


- (IBAction)remove:(UIButton *)sender {
    // 删除最后一个商品
    UIView *lastShow = [self.shopCarView.subviews lastObject];
    [lastShow removeFromSuperview];
    
    // 设置索引值
    //self.index -= 1;
    self.addButton.enabled = YES;
    if(self.shopCarView.subviews.count == 0){
        self.removeButton.enabled = NO;
    }
    
    
}

@end

到了这里,关于oc基本控件3的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • UI学习——UITextField控件

    UITextField是iOS开发中常用的控件之一,用于在应用程序中接收用户的文本输入。UITextField可以放置在视图层次结构中的任何位置,并通过键盘输入文本 首先在viewController的接口部分定义一个UITextField对象,如下代码所示: 下面在viewController的实现部分完成UITextField的一些功能 运

    2024年02月05日
    浏览(30)
  • C#线程操作UI控件

    在写winform程序时候,如果时间长的操作不用线程操作。那么会卡死UI,点击界面就体现为未响应。为此需要对耗时操作用线程处理,比如检验的监听程序就是一个死循环,不停检查文件夹或数据库又没有数据,然后上传。如果不时有线程,在数据多的情况,程序是基本点不动

    2024年02月13日
    浏览(34)
  • element ui 树形控件点击

      element 树形控件 点击当前节点,鼠标再离开后,当前节点就是个白色的背景颜色,我试了很多方法都不能完全性解决这个问题,最后是         .el-tree-node:focus .el-tree-node__content {             background-color: #06518c;         }         .el-tree-node__content:active {             b

    2024年01月22日
    浏览(39)
  • c# 跨线程访问UI控件

            在一个应用程序中,往往存在两种线程:UI线程和工作线程。         UI线程有窗口,创建窗口的控件,且有消息队列对窗口和控件的消息进行管理。主要处理和UI相关的逻辑。         工作线程主要处理和业务相关的比较复杂的逻辑,当处理好之后有可能会调用U

    2024年02月08日
    浏览(40)
  • Android——基本控件(下)(二十)

    1.1 知识点 (1)掌握树型组件的定义; (2)可以使用事件对树操作进行监听。 2. 具体内容 既然这个组件可以完成列表的功能,肯定就需要一个可以操作的数据,那么这里也是使用setAdapter()这个方法完成数据的设置,可以大家可以发现,setAdapter方法中可以接受数据类型: 发

    2024年02月11日
    浏览(38)
  • Android——基本控件(下)(十九)

    1.1 知识点 (1)掌握Android中菜单的使用; (2)掌握选项菜单(OptionsMenu)的使用; (3)掌握上下文菜单(ContextMenu)的使用; (4)掌握子菜单(SubMenu)的使用; 1.2 具体内容      只需要在onCreateOptionsMenu(Menu menu)去进行菜单的设置就行 以上是在菜单显示之前执行的一个方

    2024年02月10日
    浏览(36)
  • Maui中基本控件目录

    基本控件介绍 控件名 中文名称 说明 Button 按钮 与WPF中的基础用法无太大变化 CheckBox 单选框 与WPF中的基础用法无太大变化 ListView 列表 类似WPF中列表控件“ListBox” ImageButton 图片按钮 WPF中没有该控件,通常需要开发者手动实现,MAUI中已经包含在基础控件中。 Entry 输入框 类似

    2024年02月07日
    浏览(33)
  • Winform UI界面设计例程——多线程访问UI控件

    这里讨论两种多线程访问UI控件的方法,线程完成后更新Lable控件 如下图,第一种方式为方式1按钮按下,线程运行,并更新label 第二种方法为按下方式2按钮,线程运行,完成后更新label  新建winform项目程序,布局如上,大家可以不用配色,简单即可 引用 using System.Threading;  

    2023年04月08日
    浏览(37)
  • Element UI-实现树形控件单选

    由于在有些业务场景需要用到树形控件的单选功能,Element UI默认是多选的,但可以通过Element提供的事件和方法来实现树形控件的单选功能,其代码如下: 效果如下: 小结: 在标签中需要设置: show-checkbox (支持选框)、 check-strictly (勾选时子父节点不关联) 在使用事件

    2024年02月14日
    浏览(44)
  • [UI5 常用控件] 01.Text

    Text是UI5中最常用的控件之一。 记录Text常用的功能。 控件路径是sap.m.Text Controller View 普通绑定: 别名绑定: binding绑定: 别名binding绑定: bindText bindText with alias bindProperty bindElement setText getText

    2024年01月24日
    浏览(42)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包