在我的应用程序的一个位置,我需要使用相机,所以我打电话给UIImagePickerController.不幸的是,一旦我从控制器返回,应用程序中的大多数图片都是全尺寸的,无论它们的UIImageView属性如何.例外似乎是UIImageViews中的UITableViewCells.这适用于应用程序中的所有视图,而不仅仅是与调用它的viewcontroller直接连接的视图UIImagePickerController.有一次,当我在弄乱,试图排除故障时,问题似乎自己消失了,虽然我无法复制它.
代码如下.
-(void)viewDidAppear:(BOOL)animated {
[super viewDidAppear:animated];
if(![UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypeCamera]){
UIAlertView *errorAlertView = [[UIAlertView alloc] initWithTitle:@"Error"
message:@"Device has no camera"
delegate:nil
cancelButtonTitle:@"OK"
otherButtonTitles:nil];
[errorAlertView show];
[_app.navController popPage];
}
else if(firstTime){
UIImagePickerController *picker = [[UIImagePickerController alloc] init];
picker.delegate = self;
picker.allowsEditing = YES;
picker.sourceType = UIImagePickerControllerSourceTypeCamera;
firstTime = false;
[self presentViewController:picker animated:YES completion:NULL];
}
}
-(void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info {
UIImage *cameraImage = info[UIImagePickerControllerEditedImage];
[picker dismissViewControllerAnimated:YES completion:NULL];
NSString *folderName = @"redApp";
if([_page hasChild:[RWPAGE …Run Code Online (Sandbox Code Playgroud) 这篇博客文章说:
虽然有时候有一些明智的方法可以在没有DI的情况下模拟对象(通常是通过模拟类方法,如上面的OCMock示例所示),但它通常是不可能的.即使有可能,测试设置的复杂性也可能超过其好处.如果你一直使用依赖注入,你会发现使用存根编写测试并且模拟会更容易.
但它没有解释原因.id在简单的OCMockito 中,DI(注入符合协议的对象)在Objective-C中更适合模拟的可能场景是什么?
[given([mockArray objectAtIndex:0]) willReturn:@"first"];
[verifyCount(mockArray, times(1)) objectAtIndex:];
Run Code Online (Sandbox Code Playgroud)
?
我UITableview在Swift中制作了多个选项,并声明了一个包含NSIndexPaths所选UITableView单元格的数组.
self.selectedRows = self.preferencesTableView.indexPathsForSelectedRows()
Run Code Online (Sandbox Code Playgroud)
如何将此数组转换为可读术语.例如self.selectedRows是NSloglike:
选定项目字符串[{length = 2,path = 0 - 1},{length = 2,path = 0 - 0},{length = 2,path = 0 - 3}]
我希望能够将其转换为:1,2,3.
在Objective CI中通过数组enumerateObjectsWithOptions并将数组的id添加到可变数组中以获得我想要的内容.
[self.selectedRows enumerateObjectsWithOptions:NSEnumerationReverse
usingBlock:^(id obj, NSUInteger idx, BOOL *stop) {
NSIndexPath *indexPath = obj;
[self.selectedCategorieItems addObject:[[[self.categoryArr
objectAtIndex:0] objectForKey:@"id"]objectAtIndex:indexPath.row]];
}];
Run Code Online (Sandbox Code Playgroud)
我如何在Swift中执行此操作?
我正在使用a UILabel作为leftViewa UITextField.问题是textField的文本高于标签的文本.
这是我到目前为止使用的代码
UILabel *startsWith = [[UILabel alloc] init];
startsWith.font = [UIFont systemFontOfSize:14];
startsWith.textColor = [UIColor blackColor];
startsWith.backgroundColor = [UIColor clearColor];
startsWith.text = @"Text";
[startsWith sizeToFit];
self.textField.leftViewMode = UITextFieldViewModeAlways;
self.textField.leftView = startsWith;
Run Code Online (Sandbox Code Playgroud)
我试过稍微改变标签的框架,但它不起作用......
如何对齐两个文本?
我试图在一个简单的访问数据库中搜索数据.代码是这样的
Call connect()
con.Open()
cmd = New OleDbCommand("Select * from PO_Record_Table where Customer=asd", con)
dr = cmd.ExecuteReader
While dr.Read
MsgBox(dr(1))
End While
con.Close()
Run Code Online (Sandbox Code Playgroud)
如果我按下搜索按钮,则错误:此行上没有给出一个或多个必需参数的值
dr = cmd.ExecuteReader
Run Code Online (Sandbox Code Playgroud)
记录"asd"在数据库客户字段中作为文本类型.为什么会出现此错误以及如何在没有错误的情况下完成此搜索?
我有一个问题是在异步过程中获取值.
我的班级是:
public class PostService: NSObject {
var result : String = String()
//this is my function
func request(var dataPost : String, var destination : String)->String{
let request = NSMutableURLRequest(URL: NSURL(string: destination as String)!)
request.HTTPMethod = "POST"
let postString = dataPost
request.HTTPBody = postString.dataUsingEncoding(NSUTF8StringEncoding)
let task = NSURLSession.sharedSession().dataTaskWithRequest(request) {
data, response, error in
if error != nil {
println("error=\(error)")
return
}
let responseString = NSString(data: data, encoding: NSUTF8StringEncoding)
self.result = responseString as String!
}
task.resume()
//problem is here that result …Run Code Online (Sandbox Code Playgroud) 我有一个UIView使用xib构建的自定义文件CustomModuleUIView,其中包含一个包含标签和按钮的文件所有者.我在我的Rootviewcontroller中调用了这个自定义视图,我成功地使用initWithCoder方法显示它.问题是,我不能默认的文本改变UILabel既不是来自customMouleUIView也不能从根本ViewController.我找到了一个示例,它告诉我进行自定义初始化,initWithCoder但它对我不起作用,没有任何变化,没有任何错误,它显示默认文本.
这是我的自定义UIView xib

这是我的根视图控制器

这是我的代码哦定制UIView .h
#import <UIKit/UIKit.h>
@interface ModuleCustomUIView : UIView
-(void) setup;
@property (weak, nonatomic) IBOutlet UIImageView *_moduleIcon;
@property (retain, nonatomic) IBOutlet UILabel *_moduleName;
- (IBAction)openDemo:(id)sender;
- (IBAction)close:(id)sender;
@property (weak, nonatomic) IBOutlet UIImageView *_moduleImage;
@property (strong, nonatomic) IBOutlet UILabel *_positionLabel;
@end
Run Code Online (Sandbox Code Playgroud)
.m的代码,我使用setup方法来初始化我的UIView,因为我无法调用
[[NSBundle mainBundle] loadNibNamed:xib owner:self options:nil] ;
Run Code Online (Sandbox Code Playgroud)
在initWithCoder里面导致无限循环.
-(id)initWithCoder:(NSCoder *)aDecoder
{
self = [super initWithCoder:aDecoder];
if(self)
{
}
return self;
}
-(void) setup …Run Code Online (Sandbox Code Playgroud) 我试图调用根控制器,我不知道调用它的代码.我正在使用条件,它将检查以前的视图控制器是什么,并且将根据它是什么来运行代码块.这是我的代码:
SecondViewController
override func viewDidLoad ( ) {
super.viewDidLoad ( )
let previousController = storyboard!.instantiateViewControllerWithIdentifier ("firstViewController") as? FirstViewController
//HELP IN LINE BELOW
//if root view controller == previousController {
//run some code
//}
}
Run Code Online (Sandbox Code Playgroud) ios ×7
objective-c ×3
swift ×3
asynchronous ×1
dispatch ×1
ios5 ×1
ipad ×1
iphone ×1
listener ×1
mocking ×1
ms-access ×1
uilabel ×1
uitableview ×1
uitextfield ×1
uiview ×1
unit-testing ×1
vb.net ×1
xcode ×1
xib ×1