由于 UIActivityIndicatorViewStyleWhiteLarge 现已在 iOS 13 中弃用,如何更改此行?
UIActivityIndicatorView *activityView = [[UIActivityIndicatorView alloc]
initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleWhiteLarge];
Run Code Online (Sandbox Code Playgroud) 我有一个文本字段,并使用shouldChangeCharactersInRange方法来获取值。
这是我的代码:
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string{
NSLog(@"Pressing : %@\n", string);
NSMutableString *text = [NSMutableString stringWithString:textField.text];
NSLog(@"length: %lu", (unsigned long)range.length);
NSLog(@"location: %lu\n", (unsigned long)range.location);
NSLog(@"before text: %@", textField.text);
[text replaceCharactersInRange:range withString:string];
NSLog(@"After replacement , Text: %@\n\n", text);
// My work..
return YES;
}
Run Code Online (Sandbox Code Playgroud)
我首先将字符“T”添加到文本字段,它工作正常..
2016-03-02 10:06:23.162 MyTextFieldApp[12006:4323645] Pressing : T
2016-03-02 10:06:23.163 MyTextFieldApp[12006:4323645] length: 0
2016-03-02 10:06:23.163 MyTextFieldApp[12006:4323645] location: 0
2016-03-02 10:06:23.163 MyTextFieldApp[12006:4323645] before text:
2016-03-02 10:06:23.163 MyTextFieldApp[12006:4323645] After replacement , Text: T
Run Code Online (Sandbox Code Playgroud)
然后,我退格它以删除字符,这也很好用。
2016-03-02 10:06:30.979 MyTextFieldApp[12006:4323645] …Run Code Online (Sandbox Code Playgroud) 我有一个类ViewControllerA,我可以UIPopoverPresentationcontroller从中显示B类显示的数据,工作正常.当我在pop中选择一个值时,我想解雇它.我的代码如下
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
NSString *getLang=[self.myArr objectAtIndex:indexPath.row];
if ([getLang isEqualToString:@"Ragul"]) {
getLang=@"Received";
}
else if ([getLang isEqualToString:@"Gokul"])
{
getLang=@"Denied";
}
ViewControllerA *viewCont=[[ViewControllerA alloc]init];
viewCont.delegate=self;
[self dismissViewControllerAnimated:YES completion:nil];
[viewCont anOptionalMethod:getLang];
}
Run Code Online (Sandbox Code Playgroud)
anOptionalMethod是一个自定义委托方法,我调用它来显示从PopOver中选择的值的数据.
-(void)anOptionalMethod:(NSString *)langLocal
{
[self viewDidLoad];
self.popController.delegate = self;
[self.ContPop dismissViewControllerAnimated:YES completion:nil];
self.langShown=YES;
lblText.Text=MyValue;
[self.view addSubview:lblText]; // This calls viewDidLoad method
}
Run Code Online (Sandbox Code Playgroud)
当我将结果添加到ViewControllerA与[Self.view addSubview:MyValue]该viewDidLoad方法被调用.所以这不应该发生.我知道这popOverPresentationController充当了父视图,因此我遇到了这个问题.所以请帮我解决这个问题.先感谢您..
我必须查看:view_1和view_2.view_1高度与主视图控制器高度成正比,我以编程方式将view_2添加为view_1的子视图,其比例高度.
问题
当设备大小改变从iPhone 6到iPhone 5时,view_1正确调整但其高度我传递给绘制其子视图view_2的功能仍然是在界面构建器中设置的,因此它在iPhone 4移动时超出界限来自iPhone 6
因此,我想知道如何获得正确大小的视图,以便自动调整大小以适应当前设备?
在我的应用程序中,我在视图控制器上放置了一个标签,我希望该标签显示一个每毫秒递增1的数字.(我知道我可以每秒更新1000,但我希望它看起来很流畅)
@IBOutlet var label: UILabel!
var number = 0
var timer: NSTimer!
override func viewDidLoad() {
super.viewDidLoad()
timer = NSTimer.scheduledTimerWithTimeInterval(0.001, target: self, selector: Selector("addNumber"), userInfo: nil, repeats: true)
}
func addNumber () {
number++
label.text = number.description
}
override func viewDidDisappear(animated: Bool) {
super.viewDidDisappear(animated)
timer?.invalidate()
}
Run Code Online (Sandbox Code Playgroud)
代码对我来说都很合理,但是当我运行应用程序时,我发现这个数字每秒增加大约50,而不是每秒增加1000.这个错误远远不能接受!
令人惊讶的是,当我锁定屏幕几秒钟并再次解锁时,数字突然增加了几千!
我认为这是因为我在计时器触发时更新UI,因此需要更多时间.但我该如何解决这个问题呢?
ios ×5
objective-c ×3
swift ×2
ios13 ×1
iphone ×1
nsrange ×1
nstimer ×1
uitextfield ×1
view-bound ×1