小编Phi*_*lip的帖子

以编程方式使用安全区域布局

由于我不使用故事板来创建我的视图,我想知道是否有编程方式的"使用安全区域指南"选项或类似的东西.

我试图将我的观点固定在

view.safeAreaLayoutGuide

但它们仍然与iPhone X模拟器中的顶级重叠.

ios swift safearealayoutguide iphone-x

83
推荐指数
7
解决办法
10万
查看次数

在SDWebImage中显示活动指示器

我正在使用SDWebView图像,我想显示一个活动指示器作为占位符,同时从远程获取图像.

我在这里尝试了Malek的答案如何在SDWebImage中显示活动指示器,但似乎如此

UIImage *cachedImage = [manager imageWithURL:url];
Run Code Online (Sandbox Code Playgroud)

已弃用.

是否有人使用此库可以告诉我如何在加载图像时插入活动指示器?

编辑

根据Michael Frederick的指示,我最终得到了这段代码,一切正常.

UIActivityIndicatorView *activityIndicator = [[[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleWhite] autorelease];
activityIndicator.hidesWhenStopped = YES;
activityIndicator.hidden = NO;
[activityIndicator startAnimating];
activityIndicator.center = CGPointMake(self.tipImage.frame.size.width /2, self.tipImage.frame.size.height/2);
[imageView setImageWithURL:[NSURL URLWithString:imageString]
          placeholderImage:nil options:SDWebImageProgressiveDownload
                   success:^(UIImage *image) { [activityIndicator stopAnimating];[activityIndicator removeFromSuperview]; }
                   failure:^(NSError *error) {  [activityIndicator stopAnimating];[activityIndicator removeFromSuperview]; }];

[imageView addSubview:activityIndicator];
Run Code Online (Sandbox Code Playgroud)

objective-c uiactivityindicatorview sdwebimage

31
推荐指数
8
解决办法
2万
查看次数

iOS 8 - 在切换控件后,旋转使statusBar即使在纵向模式下也会消失

我在iOS 8中新的自动隐藏状态栏时遇到了很多麻烦.

在我的应用程序中,我有一个视图,当用户点击一次时,导航栏和状态栏消失.

在横向时,状态栏会自行隐藏,对我来说没问题.我只需要在纵向模式下使用它.

但问题是当设备是横向并且显示条形时,当用户点击两次以切换条形(如此显示),并且以纵向模式转动设备时,状态栏仍然是隐藏的.

基本上我需要能够隐藏statusBar而不会干扰它在iOS 8上的自然行为,所以我回顾一下这个场景:

  • 用户使用tabBar和NavigationBar以及statusBar输入所述视图;
  • 在视图中点击一次,条形消失
  • 用户旋转设备,statusBar没有出现 - 好的,我想要这个
  • 用户再次点击以显示栏 - StatusBar仍然隐藏,好的.
  • 用户从横向旋转到纵向和..
  • statusBar仍然隐藏 - 不行.

MRW> http://rack.2.mshcdn.com/media/ZgkyMDEzLzA2LzEzL2Y0L1B1Y2suODkyZGIuZ2lmCnAJdGh1bWIJMTIwMHg5NjAwPg/c6538ddb/a38/Puck.gif

我试图在willRotate上调整statusBar,但是我弄得一团糟,其中statusBar在不应该的时候可见.我正在使用的代码:

- (BOOL)prefersStatusBarHidden
{
    return statusBarHidden;
}

-(void)toggleBars:(UITapGestureRecognizer *)gesture{
    CATransition *animation = [CATransition animation];
    animation.type = kCATransitionFromBottom;
    animation.subtype = kCATransitionFromTop;
    animation.duration = .2f;
    [animation setTimingFunction:[CAMediaTimingFunction functionWithName: kCAMediaTimingFunctionEaseInEaseOut]];


    BOOL toggleNavigationBar = self.navigationController.navigationBarHidden;
    [self.navigationController.navigationBar.layer addAnimation:animation forKey:nil];
    [self.navigationController setNavigationBarHidden:!toggleNavigationBar animated:YES];



    BOOL toggleTabHidden = self.tabBarController.tabBar.hidden;
    if(![[[NSUserDefaults standardUserDefaults] objectForKey:@"showTabBar"]isKindOfClass:[NSNull class]]){
        if([(NSNumber*)[[NSUserDefaults standardUserDefaults] objectForKey:@"showTabBar"]boolValue])
        {
            [self.tabBarController.tabBar.layer addAnimation:animation forKey:nil];
            [self.tabBarController setHideTabBar:!toggleTabHidden animated:YES];
        }
    }

    statusBarHidden = …
Run Code Online (Sandbox Code Playgroud)

objective-c statusbar orientation

16
推荐指数
2
解决办法
1万
查看次数

Magento - reloadPrice()修改

我的客户需要对产品自定义选项进行操作.

使用Magento CE,我创建了一个产品,并在"管理产品">"添加新产品"的内置左侧菜单中为其提供一些自定义选项,例如"mm"(毫米)和"mt"(米)

该产品将同时具有无线电选项和​​文本机器人输入.

让我们说我们有

Base price: 0 

MM:
Radio option A which costs 0,9
Radio option B which costs 1,2
Radio option C which costs 2,3 

MT:
Textbox value = unknown yet
Run Code Online (Sandbox Code Playgroud)

假设用户选择Radio option B并输入10文本字段

价格应该更新如下:

1,2 * 10 + 0
Run Code Online (Sandbox Code Playgroud)

这是

radio value cost * textbox value + base price 
Run Code Online (Sandbox Code Playgroud)

有没有办法告诉代码取单选按钮的值,将它乘以文本框的值,并将其全部加到基本价格?

我在哪里可以看到产品自定义选项的当前行为?

编辑

我看到无论何时选择一个值,都会reloadPrice()调用该函数.

我想检查两个输入是否都是无线电和文本,然后获取文本的值并将其乘以无线电的值.

是对的吗?你能指点我一点吗?

javascript php magento

12
推荐指数
1
解决办法
615
查看次数

获取斯威夫特任何UIView的中心

我正在尝试编写一个全局函数,通过调用这样的函数将activityIndi​​cator添加到任何视图(通常是imageViews).

我现在的功能是:

public func addActivityIndicatorToView(activityIndicator: UIActivityIndicatorView, view: UIView){

    //activityIndicator configuration ...
    activityIndicator.center = view.center
    view.addSubview(activityIndicator)
    activityIndicator.startAnimating()
}
Run Code Online (Sandbox Code Playgroud)

但出于某种原因,我没有得到视图的中心.

我也尝试过围绕SO和Google的各种解决方案,但直到现在都没有.

有没有办法获得中心点并将activityIndi​​cator设置为任何UIView?

center uiview swift

12
推荐指数
3
解决办法
3万
查看次数

如何象征iPhone\iPad崩溃日志?

我想知道如何在XCode中象征崩溃,我有.crash文件,我不知道该怎么做.

我想修复一个影响我的应用程序的该死的bug,提前谢谢!

iphone symbolicatecrash

11
推荐指数
1
解决办法
1万
查看次数

在PDF文件中的内容之后绘制图像

我最近一直在寻找一个很好的PDF教程,文档等等.

我最终使用了这段代码,但问题很少.

脚本

我有一个包含标签,textView和imageView的视图.现在,我们将调用标签name,textView description和imageView image.

该名称作为标题.

描述非常非常可变,它可以是从2行到某些页面.

图像应该放在描述文本的末尾.

我正在使用此代码:

- (void)generatePDF{
    NSString *fileName = [NSString stringWithFormat:@"%@.pdf",nameString];
    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
    NSString *documentsDirectory = [paths objectAtIndex:0];
    NSString *pdfFileName = [documentsDirectory stringByAppendingPathComponent:fileName];

    CFAttributedStringRef currentText = CFAttributedStringCreate(NULL,
                                                                 (CFStringRef)descriptionString, NULL);
    if (currentText) {
        CTFramesetterRef framesetter = CTFramesetterCreateWithAttributedString(currentText);
        if (framesetter) {

            // Create the PDF context using the default page: currently constants at the size
            // of 612 x 792.
            UIGraphicsBeginPDFContextToFile(pdfFileName, CGRectZero, nil);

            CFRange currentRange = …
Run Code Online (Sandbox Code Playgroud)

pdf objective-c ios

9
推荐指数
1
解决办法
4722
查看次数

使用UISearchBar\UISearchDisplayViewController进行故障

我在iOS 7上使用我的SearchDisplayViewController很难.我有一个隐藏在UITableViewController上的searchBar,比如

self.tableView.tableHeaderView = searchBar;
Run Code Online (Sandbox Code Playgroud)

问题是,当我点击searchBar键入某些东西时,视图开始变灰,然后我快速点击屏幕随机点以消除它,回到tableView,搜索栏消失.完全.仅限iOS 7.

调试它,帧始终是相同的:0,0,320,44.但酒吧是看不见的!

也尝试过

self.tableView.contentOffset = CGPointMake(0,self.searchDisplayController.searchBar.frame.size.height);
Run Code Online (Sandbox Code Playgroud)

我很快就会消失.

在iOS 6上,它工作得很好.问题仅限于iOS 7,就我所见.

我不知道它取决于什么,有没有人遇到过同样的问题?

objective-c uisearchbar ios7

9
推荐指数
1
解决办法
5430
查看次数

他们是否在iOS 11中为UITableVIew添加了更多填充?

是仅仅是我还是他们UITableView在iOS 11中为分组页眉和页脚添加了更多填充?

我编译我的应用程序以运行iOS 11并注意到额外的填充.我有点解决了它,通过设置contentInset.top负值来检查操作系统是否是iOS 11,但这是一个丑陋的解决方法.

有没有其他更好的方法可以清除分组表视图的额外填充,以便在所有支持的iOS上实现相同的结果?对这种愚蠢的事情进行多次检查有点臭.

比较截图:

iOS 10 vs iOS 11 UITableView比较

正如您所看到的,在iOS 11上,各部分之间有额外的间距(是的,这些是部分!).

iphone xcode uitableview ios ios11

8
推荐指数
2
解决办法
4806
查看次数

UIPanGestureRecognizer限制坐标

我在主UIView中添加了一个子视图(称为panel),我添加了gestureRecognizer,因为我希望它只能为Y轴拖动,并且仅限于某些限制(即160,300,超过300,它不能去).

我用这种方式实现了手势处理

- (IBAction)handlePan:(UIPanGestureRecognizer *)recognizer {
    CGPoint translation = [recognizer translationInView:self.view]; 
    recognizer.view.center = CGPointMake(self.view.frame.size.width/2, recognizer.view.center.y + translation.y);
    [recognizer setTranslation:CGPointMake(0, 0) inView:self.view.superview];

    //now limit the drag to some coordinates
   if (y == 300 || y == 190){
       no more drag
    }
}
Run Code Online (Sandbox Code Playgroud)

但现在我不知道如何将阻力限制在那些坐标上.

它不是一个巨大的视图,它只是一个包含工具栏和按钮的小视图.

如何将拖动限制为坐标?(x = 160(中间屏幕),y = 404)< - 示例

中心应该在那里?

我google了很多,但我找不到具体的答案.

提前致谢

objective-c uiview uipangesturerecognizer

6
推荐指数
2
解决办法
7812
查看次数