我一直在阅读很多关于iOS7 UI过渡的内容.
我不能够得到什么这三个属性automaticallyAdjustsScrollViewInsets,extendedLayoutIncludesOpaqueBars,edgesForExtendedLayout?
例如,我试图让我的视图控制器从状态栏下面开始,但我无法实现它.
我已经编写了自己的函数来在键盘出现时向上滚动文本字段.为了通过点击文本字段来关闭键盘,我创建了一个UITapGestureRecognizer在点击时关注文本字段上的第一响应者.
现在,我还为UITableView文本字段创建了一个自动完成功能,在文本字段正下方创建一个自动填充,并在用户输入文本时用项目填充它.
但是,当选择自动完成表中的一个条目时,didSelectRowAtIndexPath不会被调用.相反,似乎轻敲手势识别器正在被调用并且刚刚辞职第一响应者.
我猜是有一些方法可以告诉轻敲手势识别器继续将点击消息传递到下方UITableView,但我无法弄清楚它是什么.任何帮助将非常感激.
我有一个视图,UIPanGestureRecognizer可以垂直拖动视图.所以在识别器回调中,我只更新y坐标来移动它.这个视图的超级视图有一个UIPanGestureRecognizer水平拖动视图,只是更新x坐标.
问题是第一个UIPanGestureRecognizer是事件是垂直移动视图,所以我不能使用超视图手势.
我试过了
- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer
shouldRecognizeSimultaneouslyWithGestureRecognizer:
(UIGestureRecognizer *)otherGestureRecognizer;
Run Code Online (Sandbox Code Playgroud)
两者都会奏效,但我不希望如此.我希望只有在运动明显水平的情况下才能检测水平.所以如果UIPanGestureRecognizer有一个方向属性会很棒.
我怎样才能实现这种行为?我发现文档很混乱,所以也许有人可以在这里更好地解释它.
我有一个通用应用程序,在iPad版本上我UISplitViewController用来创建类似于Mail应用程序的界面.
我在推送新的Detail视图时遇到了麻烦,所以我决定使用一个,UINavigationController所以我可以根据需要推送和弹出视图.但是,我不想使用导航视图或工具栏.但无论我做什么,我都无法隐藏导航栏.
我已经尝试取消选中IB中的"显示导航栏",我也尝试过设置:
[self.navigationController setNavigationBarHidden:YES];
Run Code Online (Sandbox Code Playgroud)
在viewDidLoad/ viewDidAppear/ viewWillAppear.我也在每个将要推送的视图中尝试过它.什么都行不通.
这里有什么我想念的吗?是否可以UINavigationController没有工具栏或导航栏?
这个UIPanGestureRecognizer课程有几个例子.例如,我已阅读此内容,但仍无法使用它...
在我正在处理的nib文件上,我有一个UIView(图像上的白色矩形),我希望用该类拖动:

在我的.m文件中,我放置了:
- (void)setTranslation:(CGPoint)translation inView:(UIView *)view
{
NSLog(@"Test to see if this method gets executed");
}
Run Code Online (Sandbox Code Playgroud)
当我将鼠标拖过时,该方法无法执行UIView.我也试过放置:
- (void)pan:(UIPanGestureRecognizer *)gesture
{
NSLog(@"testing");
}
Run Code Online (Sandbox Code Playgroud)
并且该方法也不会被执行.也许我错了,但我认为这个方法应该像- (void) touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event我必须放置该方法的方法一样工作,只要有触摸就会调用它.
我究竟做错了什么?也许我必须绘制与该方法的连接?如果是这样我怎么能这样做?
我有一个UIViewController实现TableViews委托和数据源协议.现在我想向细胞添加"轻扫删除"手势.
我应该怎么做呢.
我给出了commitEditingStyle方法的空白实现,并将Editing属性设置为YES.
仍然没有滑动功能.
现在我需要单独添加UISwipeGesture到每个单元格吗?
或者我错过了什么?
有没有办法自定义所选分段的颜色UISegmentedControl?
我找到了segmentedController.tintColor属性,它可以让我自定义整个分段控件的颜色.问题是,当我为tintColor属性选择亮色时,所选的段几乎变得不可识别(其颜色几乎与分段控件的其余部分相同,因此很难区分选定和未选择的段).所以我不能使用任何好的亮色进行分段控制.解决方案将是选定的段颜色的一些单独的属性,但我找不到它.有没人解决这个问题?
我有一个UIView4个按钮,另一个UIView在按钮视图的顶部.最顶层的视图包含UIImageView一个UITapGestureRecognizeron.
我试图创建的行为是,当用户点击UIImageView它时,它在屏幕右下角的小视图和动画变大之间切换.当它很大时,我想要禁用底部视图上的按钮,当它很小时,在右下角我希望触摸传递到按钮并让它们正常工作.我几乎在那里,但除非我禁用UserInteractions顶视图,否则无法通过按钮进行操作.
我initWithFrame:在顶视图中有这个:
// Add a gesture recognizer to the image view
UITapGestureRecognizer *tapGestureRecognizer = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(imageTapped:)];
tapGestureRecognizer.cancelsTouchesInView = NO;
[imageView addGestureRecognizer:tapGestureRecognizer];
[tapGestureRecognizer release];
Run Code Online (Sandbox Code Playgroud)
我这是我的imageTapped:方法:
- (void) imageTapped:(UITapGestureRecognizer *) gestureRecognizer {
// Toggle between expanding and contracting the image
if (expanded) {
[self contractAnimated:YES];
expanded = NO;
gestureRecognizer.cancelsTouchesInView = NO;
self.userInteractionEnabled = NO;
self.exclusiveTouch = NO;
}
else {
[self expandAnimated:YES];
expanded …Run Code Online (Sandbox Code Playgroud) 我发现了一些关于如何UIPageViewController跳转到特定页面的问题,但我注意到跳跃的一个额外问题,没有任何答案似乎承认.
没有进入我的iOS应用程序的细节(类似于分页日历),这是我正在经历的.我声明了一个UIPageViewController,设置当前的视图控制器,并实现一个数据源.
// end of the init method
pageViewController = [[UIPageViewController alloc]
initWithTransitionStyle:UIPageViewControllerTransitionStyleScroll
navigationOrientation:UIPageViewControllerNavigationOrientationHorizontal
options:nil];
pageViewController.dataSource = self;
[self jumpToDay:0];
}
//...
- (void)jumpToDay:(NSInteger)day {
UIViewController *controller = [self dequeuePreviousDayViewControllerWithDaysBack:day];
[pageViewController setViewControllers:@[controller]
direction:UIPageViewControllerNavigationDirectionForward
animated:YES
completion:nil];
}
- (UIViewController *)pageViewController:(UIPageViewController *)pageViewController viewControllerAfterViewController:(UIViewController *)viewController {
NSInteger days = ((THDayViewController *)viewController).daysAgo;
return [self dequeuePreviousDayViewControllerWithDaysBack:days + 1];
}
- (UIViewController *)pageViewController:(UIPageViewController *)pageViewController viewControllerBeforeViewController:(UIViewController *)viewController {
NSInteger days = ((THDayViewController *)viewController).daysAgo;
return [self dequeuePreviousDayViewControllerWithDaysBack:days - 1];
}
- (UIViewController *)dequeuePreviousDayViewControllerWithDaysBack:(NSInteger)days { …Run Code Online (Sandbox Code Playgroud) 我尝试为字符串的一部分加下划线,例如,' test string '字符串中的' string '部分.我正在使用,我的解决方案运作良好.NSMutableAttributedStringiOS7
NSMutableAttributedString *attributedString = [[NSMutableAttributedString alloc]
initWithString:@"test string"];
[attributedString addAttribute:NSUnderlineStyleAttributeName
value:@(NSUnderlineStyleSingle)
range:NSMakeRange(5, 6)];
myLabel.attributedText = attributedString;
Run Code Online (Sandbox Code Playgroud)
问题是我的解决方案iOS8不再适用了.在花了一个小时测试多个变体之后NSMutableAttributedString,我发现这个解决方案只在范围从0开始时才有效(长度可以不同).这是什么原因?我该如何解决这个问题?
ios ×8
iphone ×5
objective-c ×4
uitableview ×2
colors ×1
drag ×1
ios7 ×1
ios8 ×1
ipad ×1
uiimageview ×1
uiview ×1
xcode ×1