• 基本控件-常用


    前言:ios的视图view离不开控件,了解一些常用的控件还是有必要的。以下写的只是自己平时积累到的。

    一:UILabel

        UILabel显示多行。 

    1. self.mylabel=[[UILabel alloc]initWithFrame:CGRectMake(20, 5, 200, 40)];  
    2. self.mylabel.backgroundColor=[UIColor redColor];  
    3. self.mylabel.text=@"你好,这是label测试.现在在测试换行";  
    4. self.mylabel.numberOfLines=0;//以下2句就是实现换行的,不过要frame高度足够大。  
    5. self.mylabel.lineBreakMode=UILineBreakModeWordWrap;//  
    6. [self.view addSubview:self.mylabel];  

    备注:该label设置的frame高度足够显示2行,像这里40 可以了,如果是高度20的话,还是只会显示一行文字。

               如果要label显示多行的话,还是建议使用UItextview。下一个会写到。

    二:UITextView

       UITextView 主要是为了显示多行的,相当于delphi的 memo了。

    UITextView主要是知道如何设置它不能被编辑。

    如果是使用IB,则只需要将它的Behavior Editable 勾选框去掉即可。

    如果是纯代码,则

    1. UITextView *txt=[[UITextView alloc]initWithFrame:CGRectMake(20, 100, 100, 50)];  
    2. txt.text=@"sd";  
    3. txt.editable=NO;//不可编辑  
    4. [self.view addSubview:txt];  



    三:UIButton的使用

         UIButton经常使用到,它可以是个按钮点击,也可以由图片填充。

     
    1. UIButton *backbtn = [UIButton buttonWithType:UIButtonTypeRoundedRect];  
    2.    backbtn.frame=CGRectMake(30,50,70,40);  
    3.    [backbtn setTitle:@"按钮" forState:UIControlStateNormal];  
    4.    //[backbtn setImage:[UIImage imageNamed:@"icon_top_enable.png"] forState:UIControlStateNormal];//这个是图片填充按钮,如果是图片,则button必须是UIButtonTypeCustom 。当然也可以不用图片  
    5.    [backbtn addTarget:self action:@selector(onclick) forControlEvents:UIControlEventTouchUpInside];  
    6.    //添加button点击事件 on click  
    7.    [self.view addSubview:backbtn];  



    同时也要为onclick事件做一些处理

    [plain] view plaincopy
     
    1. -(void)onclick{  
    2.     NSLog(@"你点击了按钮");  
    3. }  

    四到九 都是参照网上一篇文章,大同小异。http://hi.baidu.com/marktian/item/fbb89c3da8c26e677c034bf3

    四、UITextField

     

    常用属性:

    Text:要显示的文本。

    Placeholder:指定将要在文本字段中以灰色显示的占位符文本。

    Clear When Editing Begins:用户触摸此字段时是否删除字段中的值。就是text框最右边有一个小叉清空按钮

    Text Input Traits:文本输入特征。

    五、UIImageView

     

    常用属性:

    image:指定图像文件

    Mode:图像在视图内部的对齐方式以及是否缩放图像以适应视图。选择任何图像缩放的选项都会潜在地增加处理开销,因此最好避开这些选项,并在导入图像之前调整好图像大小。通常Mode属性为Center。

    Alpha:图像透明度。一般设置为1.0

    Background:该属性继承自UIView,但它不会影响图像视图的外观,请忽略此属性。

    Drawing复选框:选中Opaque表示视图后面的任何内容都不应该绘制,并且允许iPhone都绘图方法通过一些优化来加速绘图。

    Clear Context Before Drawing:选中它之后,iPhone将使用透明黑色绘制控件覆盖都所有区域,然后才实际绘制控件。考虑到性能问题,并且适用情况很少,通常很少需要选中ClearContext Before Drawing。

    Interaction复选框:

    User Interaction Enabled:指定用户能否对此对象进行操作。

    Multiple Touch:是否能够接收多点触摸事件。

    六:UISlider(滑块)

     

    常用属性:Value Changed

    示例:

    // 将silder的值反映到sliderLabel

    - (IBAction) sliderValueChanged: (id)sender

    {

        UISlider *slider = (UISlider *)sender;

        int progressAsInt = (int)(slider.value + 0.5f);

        NSString *newText = [[NSStringalloc] initWithFormat:@"%d", progressAsInt];

        sliderLabel.text = newText;

        [newText release];

    七:UISwitch(开关)

    代码// 属性on:获取开关的状态是否为on
    // 方法setOn:设置开关的状态
    - (IBAction) switchChanged: (id)sender
    {
    UISwitch *whichSwitch = (UISwitch *)sender;
    BOOL setting = whichSwitch.on;
    [leftSwitch setOn:setting animated:YES];
    [rightSwitch setOn:setting animated:YES];
    }

    八、UISegmentedControl

    #define kSegmentIndex_Switches 0
    #define kSegmentIndex_Button 1


    - (IBAction) segmentChanged: (id)sender
    {
    switch ([sender selectedSegmentIndex]) 
    {
    case kSegmentIndex_Switches:
    leftSwitch.hidden = NO;
    rightSwitch.hidden = NO;
    doSomethingButton.hidden = YES;
    break;
    case kSegmentIndex_Button:
    leftSwitch.hidden = YES;
    rightSwitch.hidden = YES;
    doSomethingButton.hidden = NO;
    break; 

    }


    }

    九、UIActionSheet(操作表)和UIAlertView(警报)

    UIActionSheet用于迫使用户在两个或更多选项之间进行选择都模式视图。操作表从屏幕底部弹出,显示一系列按钮供用户选择,用户只有单击了一个按钮后才能继续使用使用应用程序。

    UIAlertView(警报)以蓝色圆角矩形都形式出现在屏幕的中部,警报可显示一个或多个按钮。

    为了让控制器类充当操作表的委托,控制器类需要遵从UIActionSheetDelegate协议。我们通过在类声明都超类之后都尖括号中添加协议名称来实现。

    @interface UntitledViewController : UIViewController
    <UIActionSheetDelegate>
    {
    // ....
    }
    // 创建操作表:
    - (IBAction) buttonPressed: (id)sender
    {
    UIActionSheet *actionSheet = [[UIActionSheet alloc] 
    initWithTitle:@"Are you sure?"
    delegate:self 
    cancelButtonTitle:@"Cancel"
    destructiveButtonTitle:@"Yes,I'm sure."
    otherButtonTitles:nil];

    [actionSheet showInView:self.view];
    [actionSheet release];
    }
    // 实现方法:
    #pragma mark ActionSheet Delegate Methods
    - (void) actionSheet:(UIActionSheet *)actionSheet didDismissWithButtonIndex:(NSInteger)buttonIndex
    {

    if (buttonIndex != [actionSheet cancelButtonIndex])
    {
    NSString *text = [[NSString alloc] initWithFormat:@"test alert"];
    UIAlertView *alert = [[UIAlertView alloc] 
    initWithTitle:@"Something was done."
    message:text 
    delegate:self 
    cancelButtonTitle:@"OK!"
    otherButtonTitles:nil];
    [alert show];
    [alert release];
    [text release];
    }
    }

    //- (void) actionSheet:(UIActionSheet *)actionSheet clickedButtonAtIndex:(NSInteger)buttonIndex
    //{
    // NSLog(@"%d",buttonIndex);
    //}

    示例:

    视图有一个UISegmentedControl,"Switches"下有两个UISwitch

  • 相关阅读:
    .Net EF中DbContext动态生成DbSet
    .net core 3.0 中间件或过滤器中读取post请求body方法
    Asp.Net Core 5 WebAPI发布后的Swagger不显示问题
    .net Core 使用Swagger 让某些接口不显示在文档
    C# Request.InputStream 读取输入流为空的原因处理
    ASP.NET 中的缓存
    缓存依赖(文件、数据库)
    NLTK基本使用
    NLTK基本使用
    NLTK的基本使用
  • 原文地址:https://www.cnblogs.com/ranger-cc/p/3504253.html
Copyright © 2020-2023  润新知