当前位置:  编程技术>移动开发
本页文章导读:
    ▪NSData 读取此中一部分数据        NSData 读取其中一部分数据 NSData *data1 = [data0 subdataWithRange:NSMakeRange(200, 500)]; ......
    ▪ UITextField+小结(zhuan)        UITextField+总结(zhuan) 1.UITextField的初始化和设置1textField = [[UITextField alloc] initWithFrame:CGRectMake(120.0f, 80.0f, 150.0f, 30.0f)];2[textField setBorderStyle:UITextBorderStyleRoundedRect]; //外框类型3textField.placeholder = .........
    ▪ 进度条的应用 ProgressBar类       进度条的使用 ProgressBar类 布局文件: <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" .........

[1]NSData 读取此中一部分数据
    来源: 互联网  发布时间: 2014-02-18
NSData 读取其中一部分数据

NSData *data1 = [data0 subdataWithRange:NSMakeRange(200, 500)];


    
[2] UITextField+小结(zhuan)
    来源: 互联网  发布时间: 2014-02-18
UITextField+总结(zhuan)
1.UITextField的初始化和设置








1

textField = [[UITextField alloc] initWithFrame:CGRectMake(120.0f, 80.0f, 150.0f, 30.0f)];





2

[textField setBorderStyle:UITextBorderStyleRoundedRect]; //外框类型





3

textField.placeholder = @"password"; //默认显示的字





4

textField.secureTextEntry = YES; //密码





5

textField.autocorrectionType = UITextAutocorrectionTypeNo;





6

textField.autocapitalizationType = UITextAutocapitalizationTypeNone;





7

textField.returnKeyType = UIReturnKeyDone;





8

textField.clearButtonMode = UITextFieldViewModeWhileEditing; //编辑时会出现个修改X





9

textField.delegate = self;



2.要实现的Delegate方法,关闭键盘





view sourceprint?





1

- (BOOL)textFieldShouldReturn:(UITextField *)textField





2

{





3

    [self.textField resignFirstResponder];





4

    return YES;





5

}






最右侧加图片是以下代码,
    UIImageView *imgv=[[UIImageView alloc] initWithImage:[UIImage imageNamed:@"right.png"]];
    text.rightView=imgv;
    text.rightViewMode = UITextFieldViewModeAlways;   


如果是在最左侧加图片就换成:
text.leftView=imgv;
text.leftViewMode = UITextFieldViewModeAlways;   
UITextField 继承自 UIControl,此类中有一个属性contentVerticalAlignment
所以想让UITextField里面的text垂直居中可以这样写:
text.contentVerticalAlignment = UIControlContentVerticalAlignmentCenter;












查看函数的方法:

按住command键双击进入函数声明

按住alt键双击进入doc文档

///////////////////////////////////////////////////////////////




文本框常用方法:

如何用程序删除文本框中选中的文本

[textView delete: nil];

///////////////////////////////////////////////////////////////




如何限制文本框只能输入数字:

建立NSNumberFormatter的子类,增加这个方法,将formatter链接至文本框。



- (BOOL) isPartialStringValid: (NSString **) partialStringPtr

        proposedSelectedRange: (NSRangePointer) proposedSelRangePtr

               originalString: (NSString *) origString

        originalSelectedRange: (NSRange) origSelRange

             errorDescription: (NSString **) error

{

    NSCharacterSet *nonDigits;

    NSRange newStuff;

    NSString *newStuffString;

           

    nonDigits = [[NSCharacterSet decimalDigitCharacterSet] invertedSet];

    newStuff = NSMakeRange(origSelRange.location,

                           proposedSelRangePtr->location

                           - origSelRange.location);

    newStuffString = [*partialStringPtr substringWithRange: newStuff];

           

    if ([newStuffString rangeOfCharacterFromSet: nonDigits

                                                                                             options: NSLiteralSearch].location != NSNotFound) {

        *error = @"不是数字";

        return (NO);

    } else {

        *error = nil;

        return (YES);

    }

           

}

///////////////////////////////////////////////////////////////




从文本框获取十六进制数据的代码

char singleNumberString[3] = {'\0','\0','\0'};

uint32_t singleNumber = 0;

uint32_t i = 0;

NSMutableData *data = [NSMutableData data];

//从文本框获取到得数据




const char *buf = [[_hexToSendTextField text] UTF8String];

//转换为十六进制




for(i = 0; i < strlen(buf); i+=2)

{

if(((i+1) < len && isxdigit(buf) && (isxdigit(buf[i+1])))

{

singleNumberString[0] = buf;

singleNumberString[1] = buf[i+1];

sscanf(singleNumberString, "%x", &singleNumber);

[data appendBytes:(void*)(&tmp) length:1];

}

else

{

break;

}

}

//输出




NSLog(@"%@", data);

/////////////////////////////////////////////////////////////




点击 UITextView 输入文字,光标都从最初点开始




- (void)textViewDidChangeSelection:(UITextView *)textView

{

    NSRange range;

    range.location = 0;

    range.length = 0;

    textView.selectedRange = range;

}

///////////////////////////////////////////////////////////




软键盘

在登录页面要实现用户名和密码,密码要是点点格式,引入当前页面光标要停留在用户名选项,软键盘要弹出界面。如下图:

弹出键盘:

[username becomeFirstResponder];

取消键盘:

[username resignFirstResponder];

密码保护:

password.secureTextEntry=YES;




//////////////////////////////////////////////////////////////////




1.UITextField的初始化和设置

  textField = [[UITextField alloc] initWithFrame:CGRectMake(120.0f, 80.0f, 150.0f, 30.0f)];

  [textField setBorderStyle:UITextBorderStyleRoundedRect]; //外框类型




  textField.placeholder = @"password"; //默认显示的字




  textField.secureTextEntry = YES; //密码




  textField.autocorrectionType = UITextAutocorrectionTypeNo;

  textField.autocapitalizationType = UITextAutocapitalizationTypeNone;

  textField.returnKeyType = UIReturnKeyDone;

  textField.clearButtonMode = UITextFieldViewModeWhileEditing; //编辑时会出现个修改X




  textField.delegate = self;

2.要实现的Delegate方法,关闭键盘

  - (BOOL)textFieldShouldReturn:(UITextField *)textField

  {

      [self.textField resignFirstResponder];

      return YES;

  }

3. 可以在UITextField使用下面方法,按return键返回

-(IBAction) textFieldDone:(id) sender

{

[textFieldName resignFirstResponder];

}

链接TextField控件的"Did end on exit"

////////////////////////////////////////////////////////////////////




限制输入文本的长度

- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string

{

    if (range.location >= MAX_LENGTH)

        return NO; // return NO to not change text




    return YES;

}




if (textField.text.length >= 10 && range.length == 0)

    return NO;

return YES;




- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string

{

if ([textField.text length] > MAXLENGTH)

{

  textField.text = [textField.text substringToIndex:MAXLENGTH-1];

  return NO;

}

return YES;

}

//////////////////////////////////////////////////////////////////////




使用UITextFieldDelegate来隐藏键盘

在iPhone界面上,时常会需要当用户输入完内容后,隐藏键盘。 当然有很多方法,今天只介绍使用UITextFieldDelegate这个协议实现隐藏键盘。

其实很简单, 需要三步:

1. 在你的控制器类中,加入UITextFieldDelegate这个协议

如:@interface AddItemViewController : UIViewController <UITextFieldDelegate>

2. 在使用了UITextFieldDelegate协议的控制器类的实现中,加入- (BOOL)textFieldShouldReturn:方法。

- (BOOL)textFieldShouldReturn:(UITextField *)textField {



        [textField resignFirstResponder];

        return YES;

}

//设置焦点:




[UITextField becomeFirstResponder];

3. 将xib文件中的TextField控件的delegate变量指向到之前使用UITextFieldDelegate协议的那个控制器类,将 TextField的delegate IBOutlet变量右键链接到前面的控制器类的实例上。或者使用代码方式,指定相关TextField的delegate变量。

- (void)viewDidLoad

{

    [super viewDidLoad];

        itemNameField.delegate = self;

        priceField.delegate = self;

}

    
[3] 进度条的应用 ProgressBar类
    来源: 互联网  发布时间: 2014-02-18
进度条的使用 ProgressBar类

布局文件:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    >
 <TextView 
     android:layout_width="fill_parent"
     android:layout_height="wrap_content"
     android:text="@string/hello"
     />
    <ProgressBar
     android:id="@+id/ProgressBar01"
     
     android:layout_width="200dp"
     android:layout_height="wrap_content"
     android:visibility="gone"
    ></ProgressBar>
    <ProgressBar
     android:id="@+id/ProgressBar02"
     
     android:layout_width="wrap_content"
     android:layout_height="wrap_content"
     android:max="100"
     android:progress="50"
     android:secondaryProgress="70"
     android:visibility="gone"
    ></ProgressBar>
    <Button
     android:id="@+id/Button01"
     android:layout_width="wrap_content"
     android:layout_height="wrap_content"
     android:text="开始"
    ></Button>
</LinearLayout>
 
代码:
package yt.hy.progressbar;
import android.app.Activity;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.view.View;
import android.view.Window;
import android.widget.Button;
import android.widget.ProgressBar;
public class ProgressBarActivity extends Activity {
 private ProgressBar m_ProgressBar01;
 private ProgressBar m_ProgressBar02;
 private Button mbutton01;
 protected static final int GUI_STOP_NOTIFIER = 0x108;
 protected static final int GUI_THREADING_NOTIFIER = 0x109;
 public int intCounter = 0;
 
 @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
       
        // 设置窗口模式,因为需要显示进度条在标题栏
        requestWindowFeature(Window.FEATURE_PROGRESS);
        // 设置显示进度条
        this.setProgressBarVisibility(true);
        setContentView(R.layout.main);
       
        // 取得ProgressBar
        m_ProgressBar01 = (ProgressBar)findViewById(R.id.ProgressBar01);
        m_ProgressBar02 = (ProgressBar)findViewById(R.id.ProgressBar02);
        mbutton01 = (Button)findViewById(R.id.Button01);
        
        *Change the indeterminate mode for this progress bar.
        In indeterminate mode, the progress is ignored and
        the progress bar shows an infinite animation instead.
        If this progress bar's style only supports
        indeterminate mode (such as the circular progress bars), then this will be ignored.*/
        m_ProgressBar01.setIndeterminate(true);
        m_ProgressBar02.setIndeterminate(false);
       
        mbutton01.setOnClickListener(new Button.OnClickListener() {
   @Override
   public void onClick(View v) {
    // 设置为可见状态
    m_ProgressBar01.setVisibility(View.VISIBLE);
    m_ProgressBar02.setVisibility(View.VISIBLE);
    
    // 设置ProgressBar的最大值
    m_ProgressBar01.setMax(100);
    //设置当前值
    m_ProgressBar01.setProgress(0);
    m_ProgressBar02.setProgress(0);
    
    // 通过线程改变ProgressBar的值
    new Thread(new Runnable() {
     @Override
     public void run() {
      for (int i=0; i<10; i++) {
       try {
        intCounter = (i+1) * 20;
        Thread.sleep(1000);
        
        if (i == 4) {
         Message m = new Message();
         
         m.what = ProgressBarActivity.GUI_STOP_NOTIFIER;
         // 给Handler发送消息
         ProgressBarActivity.this.myMessageHandler.sendMessage(m);
         break;
        } else {
         Message m = new Message();
         m.what = ProgressBarActivity.GUI_THREADING_NOTIFIER;
         // 给Handler发送消息
         ProgressBarActivity.this.myMessageHandler.sendMessage(m);
        }
       } catch(Exception e) {
        e.printStackTrace();
       }
      }
     }
     
    }).start();
   }
         
        });
    }
 
 Handler myMessageHandler = new Handler() {
  // 重写接收信息的方法
  public void handleMessage(Message msg) {
   switch (msg.what) {
   // 进度已满
   case GUI_STOP_NOTIFIER :
    m_ProgressBar01.setVisibility(View.GONE);
    m_ProgressBar02.setVisibility(View.GONE);
    // 打断线程
    Thread.currentThread().interrupt();
    break;
   case GUI_THREADING_NOTIFIER :
    if (!Thread.currentThread().isInterrupted()) {
     // 改变ProgressBar的当前值
     m_ProgressBar01.setProgress(intCounter);
     m_ProgressBar02.setProgress(intCounter);
     // 设置标题栏中前景的进度条的进度值
     setProgress(intCounter*100);
     // 设置标题栏中后景的进度条的进度值
     setSecondaryProgress(intCounter*100 + 10*100);
    }
    break;
   }
   super.handleMessage(msg);
  }
 };
 
}
 

 


设置进度条类型
android:visibility="gone"设置进度条不显示,用的时候再显示
android:progress="50"默认进度
android:secondaryProgress="70"底层的进度
m_ProgressBar01.setIndeterminate(false);
默认值为 false。将此值设置为 true 可在进度条上呈现进度的文本显示。
设置进度条的 indeterminate 属性,该属性确定进度条处于确定模式中还是处于不确定模式中。

不确定进度条连续地显示动画,指示发生未知长度的操作。默认情况下,此属性为 false。有些外观

可能不支持不确定进度条;它们将忽略此属性。 (也就是循序渐进的和跳进的模式)

<!--EndFragment-->

    
最新技术文章:
▪Android开发之登录验证实例教程
▪Android开发之注册登录方法示例
▪Android获取手机SIM卡运营商信息的方法
▪Android实现将已发送的短信写入短信数据库的...
▪Android发送短信功能代码
▪Android根据电话号码获得联系人头像实例代码
▪Android中GPS定位的用法实例
▪Android实现退出时关闭所有Activity的方法
▪Android实现文件的分割和组装
▪Android录音应用实例教程
▪Android双击返回键退出程序的实现方法
▪Android实现侦听电池状态显示、电量及充电动...
▪Android获取当前已连接的wifi信号强度的方法
▪Android实现动态显示或隐藏密码输入框的内容
▪根据USER-AGENT判断手机类型并跳转到相应的app...
▪Android Touch事件分发过程详解
▪Android中实现为TextView添加多个可点击的文本
▪Android程序设计之AIDL实例详解
▪Android显式启动与隐式启动Activity的区别介绍
▪Android按钮单击事件的四种常用写法总结
▪Android消息处理机制Looper和Handler详解
▪Android实现Back功能代码片段总结
▪Android实用的代码片段 常用代码总结
▪Android实现弹出键盘的方法
▪Android中通过view方式获取当前Activity的屏幕截...
▪Android提高之自定义Menu(TabMenu)实现方法
▪Android提高之多方向抽屉实现方法
▪Android提高之MediaPlayer播放网络音频的实现方法...
▪Android提高之MediaPlayer播放网络视频的实现方法...
▪Android提高之手游转电视游戏的模拟操控
 


站内导航:


特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

©2012-2021,,E-mail:www_#163.com(请将#改为@)

浙ICP备11055608号-3