我正在尝试设计("设计合理",而不是"黑客")自定义警报视图.视图应该连接到键盘的顶部; 用键盘向上滑动(如果有警报)或被隐藏(如果没有警报).
视图应始终"粘住"键盘...例如,包括键盘隐藏时.在这种情况下,视图应该与键盘一起向下滑动,在视线之外.
以下是我正在尝试实现的示例(使用活动警报):

我原本考虑过继承UIAlertView,但看起来不推荐这样做.经过一些实验,这显然是一个棘手的任务.我有一个警报显示但是,它变成了与键盘保持同步的问题,而我还没有找到一种方法让它与键盘的运动"跟踪"......不顺利.
有任何想法吗?
我有以下代码:
button.addTarget(self, action: "buttonIsPressed:", forControlEvents: .TouchDown)
为什么在字符串后需要":"?
升级到Xcode 6.3后,我现在收到此警告:
Warning: Function definition inside an Objective-C object is deprecated
Run Code Online (Sandbox Code Playgroud)
警告出现在NSString的类别中,我在其中定义了一个UIKIT_STATIC_INLINE方法.
这是有问题的代码:
// NSString+Helpers.h
#import <Foundation/Foundation.h>
@interface NSString (Helpers)
+ (BOOL)exampleCategoryMethod;
UIKIT_STATIC_INLINE NSString *NSStringFromCLLocationCoordinate2D(CLLocationCoordinate2D coordinate) {
return [NSString stringWithFormat:@"%f,%f", coordinate.latitude, coordinate.longitude];
}
@end
Run Code Online (Sandbox Code Playgroud) 我在我的自定义UIView的drawRect中绘制了一个圆圈:
- (void)drawRect:(CGRect)rect {
...
UIBezierPath *ovalPath = [UIBezierPath bezierPathWithOvalInRect:rect];
[UIColor.whiteColor setStroke];
ovalPath.lineWidth = 1;
[ovalPath stroke];
}
Run Code Online (Sandbox Code Playgroud)
椭圆形总是夹在边缘上.我怎样才能避免剪辑?是唯一的方法是插入矩形吗?
试图在标签中的表格视图单元格的右侧以“ accessoryView”的形式显示数字,但该单元格仅显示单元格标签的文本。我究竟做错了什么?
override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let item = items[indexPath.section][indexPath.row]
let cell = UITableViewCell(style:.Default,reuseIdentifier:nil)
if let label = cell.textLabel {
label.text = item.name
}
cell.selectionStyle = .None
let label = UILabel()
label.textColor = UIColor.blackColor()
label.text = String(item.count)
label.textAlignment = .Right
cell.accessoryView = label
return cell
}
Run Code Online (Sandbox Code Playgroud) 我在iOS中使用uiscrollview时遇到内存问题.
我有一个带有巨大子视图的滚动视图(4000x600).在这个子视图中,我有其他UIImageViews作为子视图.
情况就是这样:
当我打开scrollview时,我可以看到内存和进程都在急剧增加.
我想知道解决问题的方法是:将所有视图直接添加到scrollview,而不是传递到"中间"巨大视图是否更好?
提前致谢.
在我的场景中,我有2个视图:第一个保存CALayer实例(条形图),另一个保存CAGradientLayer并放置在第一个上。下图描述了当前状态。
但是我需要将此渐变仅应用于第一个视图的条形图(CALayer)。
我没有找到与我的问题有关的任何信息。任何帮助表示赞赏。
关于为设置文本大小的动画UILabel,似乎有很多“快速修复”的答案漂浮在Stack Overflow周围,由不太愿意了解幕后情况的用户发布。
对于面向设计的开发人员来说,这令人沮丧。大多数答案建议在transform上指定UILabel,按缩放x,例如:
let label = UILabel()
label.text = "yourText"
label.sizeToFit()
label.layer.anchorPoint = CGPoint(x: 0, y: 0)
label.layer.position = CGPoint(x: 0, y: 0)
UIView.animate(withDuration: duration) {
label.transform = CGAffineTransform(scaleX: 4.0, y: 4.0)
}
Run Code Online (Sandbox Code Playgroud)
产生以下动画:

但是,它看起来很模糊-标签的跟踪值无法适应刻度。那么,为a的文本大小设置动画的最佳方法是UILabel什么?
我有一个视图(在我的情况下为MGLMapview:mapboxView),该视图显示在我的第一个VC中。我希望我的第二个VC显示相同的视图。
所以从VC1到VC2我做到了:
self.VC2.mapView = self.mapView
self.navigationController?.pushViewController(self.VC2, animated: true)
Run Code Online (Sandbox Code Playgroud)
然后在VC2的viewDidLoad中:
view.addSubview(mapView)
Run Code Online (Sandbox Code Playgroud)
我的问题是什么也没出现。但是,当我在第二个VC中打印mapView的大小和高度时,它不为零。
我想念什么吗?
感谢您的帮助
uikit ×10
ios ×8
swift ×6
animation ×1
calayer ×1
cocoa-touch ×1
drawrect ×1
iphone ×1
mapbox ×1
objective-c ×1
uialertview ×1
uibezierpath ×1
uibutton ×1
uilabel ×1
uiscrollview ×1
uitableview ×1
uiview ×1
xcode ×1