小编Sco*_*ser的帖子

UIPageViewController子视图控制器之间的水平填充

我正在使用UIPageViewController来显示嵌入在子视图控制器中的图像.

NSDictionary *options = [NSDictionary dictionaryWithObject: [NSNumber numberWithInteger:UIPageViewControllerSpineLocationMin] forKey: UIPageViewControllerOptionSpineLocationKey];
self.pageViewController = [[UIPageViewController alloc] initWithTransitionStyle:UIPageViewControllerTransitionStyleScroll navigationOrientation:UIPageViewControllerNavigationOrientationHorizontal options: options];
self.pageViewController.dataSource = self;
self.pageViewController.view.frame = self.view.bounds;

ImageViewController *initialViewController = [self viewControllerAtIndex:0];
initialViewController.index = 0;

NSArray *viewControllers = [NSArray arrayWithObject:initialViewController];
[self.pageViewController setViewControllers:viewControllers direction:UIPageViewControllerNavigationDirectionForward animated:NO completion:nil];

[self addChildViewController:self.pageViewController];
[self.view addSubview:self.pageViewController.view];
[self.pageViewController didMoveToParentViewController:self];
Run Code Online (Sandbox Code Playgroud)

一切都很好,但我讨厌儿童视图控制器彼此相邻.

在此输入图像描述

我想知道是否有办法在子视图控制器之间添加填充,这样它们就不会彼此相邻.

看起来更像是这样的东西:

在此输入图像描述

ios uipageviewcontroller ios7

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

将操作和目标添加到自定义导航BarButtonItem?

我试图通过向rightBarButtonItem添加自定义按钮来自定义导航栏.创建一个非常简单.

UIImage *myImage = [UIImage imageNamed:@"menu-icon.png"];

UIButton *myButton = [UIButton buttonWithType:UIButtonTypeCustom];
[myButton setFrame:CGRectMake(0, 0, myImage.size.width, myImage.size.height)];
[myButton setBackgroundImage:myImage forState:UIControlStateNormal];

UIBarButtonItem *myButtonItem = [[UIBarButtonItem alloc] initWithCustomView:myButton];

[navItem setLeftBarButtonItem:myButtonItem animated:YES];
Run Code Online (Sandbox Code Playgroud)

看起来不错,但现在我无法设置目标或动作属性.以下代码不执行任何操作:

myButtonItem.target = myTarget;
myButtonItem.action = @selector(myButtonAction);
Run Code Online (Sandbox Code Playgroud)

我发现它不起作用的原因是因为我用-initWithCustomView初始化了UIBarButtonItem.苹果文档说:

此方法创建的条形按钮项不会响应用户交互调用其目标的操作方法.相反,bar按钮项期望指定的自定义视图处理任何用户交互并提供适当的响应.

我对苹果究竟意味着什么感到有些困惑.我应该创建一个自定义控件或什么?我还没有真正做到这一点,我不知道从哪里开始.

有没有人有关于如何做到这一点的建议或设置自定义导航栏按钮的替代方法?

ANSWERED ------------------------------------------------- ---------

只需将此方法添加到UIButton:

[myButton addTarget:myTarget action:@selector(myButtonAction) forControlEvents:UIControlEventTouchUpInside];
Run Code Online (Sandbox Code Playgroud)

uibarbuttonitem ios ios6

6
推荐指数
1
解决办法
5994
查看次数

iOS7 UISearchBar取消按钮文本未显示.按钮看起来不可见

我希望这是一个简单的问题.

在此输入图像描述

我有一个显示取消按钮的搜索栏:

- (void)searchBarTextDidBeginEditing:(UISearchBar *)searchBar{
    [searchBar setShowsCancelButton:YES animated:YES];
}
Run Code Online (Sandbox Code Playgroud)

唯一的问题是取消按钮上的文字没有显示.

在此输入图像描述

按钮显然是因为我可以点击它,但显示按钮时没有文字出现.它好像按钮是不可见的.代码在iOS6中运行良好但现在在iOS7中我遇到了这个问题.有什么想法?我正在使用UISplitViewController,我的搜索栏位于MasterViewController的navigationItem.titleView中.

uisearchbar uisearchbardelegate ios ios7

5
推荐指数
2
解决办法
4445
查看次数

.htaccess RewriteRule有效,但地址栏中的URL没有变化?

我一直在拉我的头发试图解决这个问题,但没有任何工作.我在mysite.com/test.php上有一个网页 我想做一个简单的URL重写并将其更改为mysite.com/testRewrite/执行此操作的代码应为:

Options +FollowSymLinks
RewriteEngine on
RewriteRule ^testRewrite/$ test.php [NC,L]
Run Code Online (Sandbox Code Playgroud)

无论出于何种原因,它都无法正常工作.当你转到新网址时 - mysite.com/testRewrite/它可以工作.

但是,如果您输入原始URL mysite.com/test.php,则不会将地址更改为浏览器中的新URL.

.htaccess mod-rewrite

4
推荐指数
1
解决办法
6387
查看次数

在表视图删除行动画完成后运行其他代码

我使用标准表视图数据源协议删除表格单元格:

-(void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath
{
    if(editingStyle == UITableViewCellEditingStyleDelete)
    {
        [tableView deleteRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationFade];
    }
}
Run Code Online (Sandbox Code Playgroud)

动画完成后我想运行一些其他代码但是deleteRowsAtIndexPaths:withRowAnimation方法没有完成块.在此方法完成后,我还能运行一些代码吗?

uitableview ios ios6

4
推荐指数
1
解决办法
2594
查看次数

导航栏导航项导致推视视图控制器上按钮的顶部区域不可点击

我有一种强烈的感觉,这可能是苹果只需修复的Xcode错误.我有一个视图控制器作为根控制器嵌入在导航控制器中.视图控制器有一个与顶部布局指南垂直对齐的按钮.视图控制器的按钮工作正常,所有可点击区域都正常工作.

在此输入图像描述

但是,如果我将相同或类似的视图控制器推到导航堆栈上,它的按钮将无法完全打开.按钮的顶部(大约10个像素左右)不再可以点击.如果我尝试点击按钮的左上角,则会轻触导航栏上的后退按钮,即使我显然没有点击导航栏边界.我认为这是苹果的一个错误,但我想知道是否有人知道修复.如果有人需要,这是github项目链接.

uinavigationbar uibutton uinavigationcontroller uinavigationitem ios

4
推荐指数
1
解决办法
531
查看次数

使用 AJAX 通过 POST 请求发送 HTML 表单多个 <select> 框?

我有一个带有多选框的 html 表单。我不知道如何通过 post 请求使用 AJAX 将值发送到我的 php 应用程序。如果我使用 GET 请求并使用单个选择框,它就可以正常工作,但当我使用多个选择框时就不行了。这个想法是让用户保持控制(或使用 mac 命令)并选择一个或多个类别。根据选择的类别将决定使用 AJAX 显示哪些其他表单选项。选择框如下所示:

编辑:已解决

<select multiple name="categories[]" onclick="sendCategories(this)">
<option value="0">Category 1</option>
<option value="1">Category 2</option>
<option value="2">Category 3</option>
</select>
Run Code Online (Sandbox Code Playgroud)

我的 javascript 函数如下所示:

function sendCategories(sel){
    if (window.XMLHttpRequest)
    {
        xmlhttp=new XMLHttpRequest();
    }
    else
    {
        xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
    }
    xmlhttp.onreadystatechange=function()
    {
        if (xmlhttp.readyState==4 && xmlhttp.status==200)
        {
            document.getElementById("my_div").innerHTML=xmlhttp.responseText;
        }
    }
    xmlhttp.open("POST","http://www.mysite.com/update_categories.php",true);
    xmlhttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
    var values = $(sel).serialize();
    xmlhttp.send(values);
}
Run Code Online (Sandbox Code Playgroud)

html javascript forms arrays ajax

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

向 UINavigationController 子类添加自定义按钮

我正在尝试通过子类化导航控制器来自定义 NavigationBar。出于某种原因,我无法显示自定义按钮。我的设置非常简单,我有一个嵌入到导航控制器中的 ViewController,它使用我的自定义子类NavController

@interface NavController ()

@end

@implementation NavController

- (void)viewDidLoad{
    [super viewDidLoad];

    UIImage *wlImage = [UIImage imageNamed:@"wl-icon.png"];

    UIButton *wlButton = [UIButton buttonWithType:UIButtonTypeCustom];
    [wlButton setFrame:CGRectMake(0, 0, wlImage.size.width, wlImage.size.height)];
    [wlButton setBackgroundImage:wlImage forState:UIControlStateNormal];

    UIBarButtonItem *wlButtonItem = [[UIBarButtonItem alloc] initWithCustomView:wlButton];
    wlButtonItem.tintColor = [UIColor blackColor];

    self.navigationItem.rightBarButtonItem = wlButtonItem;
    self.navigationBar.tintColor = [UIColor blackColor];
}

@end
Run Code Online (Sandbox Code Playgroud)

当我尝试测试应用程序时,似乎唯一有效的自定义是色调。按钮不会出现。

在此处输入图片说明

我想知道它是否与导航项有关。

是不是我的初始视图控制器在它自己的默认设置中覆盖了导航项?

uinavigationbar uinavigationcontroller uinavigationitem ios ios6

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

iOS7滚动到UITableViewController的行,同时在UITableViewCell中编辑UITextField并使用适当的偏移量

我的UITableViewController上的单元格有一个可以编辑的textField.当我编辑textField时,我需要滚动tableview,以便当前字段的行位于键盘上方.这是我正在使用的代码:

-(void)textViewDidBeginEditing:(UITextView *)textView
{   
    UITableViewCell *cell = (UITableViewCell*) [[textField superview] superview];

    [self.tableView scrollToRowAtIndexPath:[self.tableView indexPathForCell:cell]
                          atScrollPosition:UITableViewScrollPositionTop
                                  animated:YES];
}
Run Code Online (Sandbox Code Playgroud)

问题是它不适用于我的tableview中的最后几个单元格.我猜它与tableview的contentSize有关.是否有适当的方法来调整tableview的偏移量,以便最后一个单元格将在键盘上方滚动?

uitableview uitextfield ios uitextfielddelegate ios7

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

在Objective-C/IOS中填充字符串,如PHP的str_pad()函数?

我希望能够在IOS中将字符串填充到左侧,直到某个字符长度.我的字符串是长度不同的id号码:

1 
12 
356 
456089
Run Code Online (Sandbox Code Playgroud)

我需要它们看起来像这样:

00000000001 
00000000012 
00000000356 
00000456089
Run Code Online (Sandbox Code Playgroud)

在PHP中我会使用str_pad()函数:

$pad_Length = 11;
$padded_string = str_pad($input_string, $pad_Length, "0", STR_PAD_LEFT);            
Run Code Online (Sandbox Code Playgroud)

这是如何在iOS/Objective-C中完成的?

回答:

NSString *input_string = @"123";
int pad_Length = 11;
NSString *padding = [@"" stringByPaddingToLength: pad_Length - [input_string length] 
                                      withString: @"0" 
                                 startingAtIndex: 0];
NSString *padded_string = [padding stringByAppendingString: input_string];
Run Code Online (Sandbox Code Playgroud)

php objective-c nsstring ios ios6

0
推荐指数
1
解决办法
1192
查看次数

在调用viewDidAppear方法之前,IOS7获取UITextView contentSize?

我正在将我的应用程序从iOS6升级到iOS7,我的UIViewControllers布局遇到了一些问题.在iOS6中,我能够通过获取textView的contentSize属性然后设置其frame属性来动态调整我的UITextViews的大小.我会在viewWillAppear方法中进行所有大小调整,以便在可见之前调整视图的大小.现在在iOS7中它不起作用.如果我在viewDidAppear方法中设置,则contentSize属性的唯一工作方式.我讨厌这样做,因为它会导致视图在已经可见之后跳转.有没有人想出如何解决这个问题?

这是我的代码在iOS7中不再有效:

-(void)viewWillAppear:(BOOL)animated
{
    self.textView = [[UITextView alloc]initWithFrame:CGRectMake(5, 0, 310, 0)];
    self.textView.text = @"Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.";
    [self.view addSubview:self.textView];

    CGRect textViewframe;
    textViewframe = self.textView.frame;
    textViewframe.size.height = [self.textView contentSize].height;
    self.textView.frame = textViewframe;
}
Run Code Online (Sandbox Code Playgroud)

uitextview viewwillappear ios ios6 ios7

0
推荐指数
1
解决办法
5097
查看次数

将嵌套枚举值转换为一个要作为函数参数传递的变量

我不确定这是否可行,但我想知道是否可以将嵌套的枚举值转换为单个变量,以便将它们传递给函数参数.例:

enum Food {
  enum Vegetables: String {
    case Spinach    = "Spinach"
    case GreenBeans = "Green Beans"
  }
  enum Fruit: String {
    case Apples    = "Apples"
    case Grapes   = "Grapes"
  }
}

func eat(meal:Food.Vegetables) {
  print("I just ate some \(meal.rawValue)")
}

func eat(meal:Food.Fruit) {
  print("I just ate some \(meal.rawValue)")
}

eat(Food.Fruit.Apples)         //"I just ate some Spinach\n"
eat(Food.Vegetables.Spinach)   //"I just ate some Apples\n"
Run Code Online (Sandbox Code Playgroud)

这里的所有东西都应该可行,但我正在尝试将我的两个吃功能合并为1.有没有办法做到这一点?我想它会涉及一个变量,它代表我可以传递给一个eat函数的所有嵌套变量类型.就像是:

func eat(fruitOrVegetable: Food.allNestedEnumeratorTypes) {
  print("I just ate some \(fruitOrVegetable.rawValue)")
}

eat(Food.Vegetables.GreenBeans)   //"I just ate some Green Beans\n" …
Run Code Online (Sandbox Code Playgroud)

enums enumeration ios swift swift2

0
推荐指数
1
解决办法
108
查看次数