IOS开发学习过程问题点记录

1、代码启动storyboard的ViewController界面问题

问题原因:
我已经把storyboard中的View Controller绑定为ViewController想点击一个TableView的Item启动storyboard的View Controller就使用以下方法

[self showViewController:[[ViewController alloc] init] sender:nil];
页面启动后发现除了<BACK键外,下方是全黑的,根本就不是storyboard的View Controller
解决办法:
原来storyboard中的View Controller可以通过ID来找到。需要先定义ID,如下图:


修改代码如下:

//通过这个方法得到storyboard中的View Controller
ViewController * view = [self.storyboard instantiateViewControllerWithIdentifier:@"tododetail"];
    [self showViewController:view sender:nil];


2.如果底部有UITextField控件,当键盘显示出来时,会把UITextField挡住,这样输入的是什么就看不见了

解决办法:

当编辑框获取焦点显示出键盘时,整个屏幕的view往上移,详细代码如下:

- (IBAction)pwdDidBeginEditing:(UITextField *)sender {
    //屏幕上移
    NSTimeInterval duration = 0.3f;
    [UIView beginAnimations:@"ResizeForKeyboard" context:nil];
    [UIView setAnimationDuration:duration];
    
    self.view.frame = CGRectMake(0, -100, self.view.frame.size.width, self.view.frame.size.height);
    
    [UIView commitAnimations];
}
- (IBAction)pwdDidEndEditing:(UITextField *)sender {
    //屏幕恢复
    NSTimeInterval duration = 0.3f;
    [UIView beginAnimations:@"ResizeForKeyboard" context:nil];
    [UIView setAnimationDuration:duration];
    
    self.view.frame = CGRectMake(0, 0, self.view.frame.size.width, self.view.frame.size.height);
    
    [UIView commitAnimations];
}
这两个事件分别是



3.修改UISlider为自定义的Thumb图片

在storyboard只有修改Thumb的颜色,没有修改的Thumb自定义图片的,这时只能用代码来修改

可以在ViewController中添加如下代码

- (void)viewDidLoad {
    [super viewDidLoad];
    // Do any additional setup after loading the view.
    [_slider1 setThumbImage:[UIImage imageNamed:@"tabnormal"] forState:UIControlStateNormal];
    [_slider1 setThumbImage:[UIImage imageNamed:@"tabchecked"] forState:UIControlStateHighlighted];

}
正常和高亮下两种图片,效果如下:虽然图片很丑,但也能说明问题吧


4.访问网络需要添加的权限

<key>NSAppTransportSecurity</key>
	<dict>
		<key>NSAllowsArbitraryLoads</key>
		<true/>
	</dict>
就是在info.plist添加下面属性


否则会报如下问题:

2016-12-24 17:22:18.941 UIViewDemo[24025:1090438] App Transport Security has blocked a cleartext HTTP (http://) resource load since it is insecure. Temporary exceptions can be configured via your app's Info.plist file.


5、UITextField点击空白处或点击Go隐藏软键盘

点击Go失去焦点隐藏软键盘


- (IBAction)didEndOnExit:(UITextField *)sender {
    [sender resignFirstResponder];
}

点击空白处隐藏软键盘


代码,记得添加变量:@property (weak, nonatomic) IBOutlet UITextField *textUrl;

- (IBAction)touchDown:(UIControl *)sender {
    [_textUrl resignFirstResponder];
}
要把父View改为UIControl才可以添加事件。


6.使用UITableView但上方没有置顶显示

使用UITableView但上方没有置顶显示,已经确认没有设置Header高度,后来查到了,只要在初始化时添加self.automaticallyAdjustsScrollViewInsets = false;就可以了。来看下前后效果

修改前:


修改后:

只要在初始化时添加self.automaticallyAdjustsScrollViewInsets = false;就OK。


猜你喜欢

转载自blog.csdn.net/deng0zhaotai/article/details/53787193
今日推荐