我在两个不同的控制器中有两个不同的tableviews.但我需要在其中显示的细胞看起来完全相同.我在一个tableView和子类UiTableViewCell中创建了一个原型单元.现在,如果我想在不同的控制器中使用相同的单元格,我该如何使用它?
如果我只是在新控制器中导入该customCell文件并使用故事板中给出的相同标识符来解除它,它就不会工作.它说
断言失败 - [UITableView _configureCellForDisplay:forIndexPath:]
由于未捕获的异常'NSInternalInconsistencyException'而终止应用程序,原因:'UITableView dataSource必须从tableView返回一个单元格:cellForRowAtIndexPath:'
所以,显然它意味着,细胞是零.那么如何从故事板中实例化相同的单元格呢?是否可以或者我是否必须为新表创建不同的customCell?
在swift 2.2中,当它在一个变异函数中时,我们可以在一个闭包中变异一个struct或enum.但在swift 3.0中它已不再可能.我收到以下错误
闭包不能隐式捕获变异的自参数
这是一段代码片段,
struct Point {
var x = 0.0, y = 0.0
mutating func moveBy(x deltaX: Double, y deltaY: Double) {
x += deltaX
y += deltaY
test { (a) -> Void in
// Get the Error in the below line.
self.x = Double(a)
}
}
mutating func test(myClosure: @escaping (_ a: Double) -> Void) {
myClosure(3)
}
}
Run Code Online (Sandbox Code Playgroud)
我得到的值类型不应该是可变的.我有一些情况,当我收到API响应时,我必须在其中一个函数中修改结构中的一个变量.(完成关闭)
我在swift 2.2中做的是什么,不可能或者有没有办法实现这个目标?
我想为UIImageVIew添加一个圆形蒙版.这是用于添加掩码的函数..
- (void) addMaskToBounds:(CGRect) maskBounds
{
CAShapeLayer *maskLayer = [[CAShapeLayer alloc] init];
CGPathRef maskPath = CGPathCreateWithEllipseInRect(maskBounds, NULL);
maskLayer.bounds = maskBounds;
[maskLayer setPath:maskPath];
[maskLayer setFillColor:[[UIColor blackColor] CGColor]];
maskLayer.position = CGPointMake(maskBounds.size.width/2, maskBounds.size.height/2);
[self.imageView.layer setMask:maskLayer];
}
Run Code Online (Sandbox Code Playgroud)
能够添加掩码,但问题出现,因为我正在改变图像框架并与其一起居中.根据用户操作放大图像并缩小图像.因此,当小和扩大时,我将不得不添加两次.因此,由于动画帧的变化,动画图像变得扭曲或移位.我该如何克服这个问题?
我想最好用一个示例项目来解释.在这里,我在GitHub上创建了一个Demo项目https://github.com/akshaynhegde/MaskImage,只需运行它来查看我的问题,让我知道如何解决问题.
在我的应用程序中,我有一个主页,其中有一个带有多个部分的卡/网格布局.这UICollectionView
是显而易见的选择.但是这些卡在设计,加载数据和功能方面也有很大差异.因此,将所有这些放在一个控制器中将是繁琐,复杂且难以维护的.所以我们认为我们需要把它们分成自己的UIViewControllers
.每个处理一种类型的卡并计算其contentSize以显示在卡内.我们的主要主页控制器只负责将这些viewcontroller
视图放在UICollectionView
单元格中.
总结一下,
我的问题是,这个设计选择对吗?或者你会选择什么方法来实现这样的屏幕?由于我们创建了许多viewControllers(每个单元格一个),这是否会影响内存或性能?如果我只想缓存一些viewControllers或者在用户滚动时加载它们或者将它添加到collectionView单元时加载它们,我该如何计算它,因为计算该单元格的大小取决于数据和放置时的视图出CollectionView布局.
我有以下mysql表名为"test".
让我们说它有如下数据,
现在我想获得用户的年龄,因为我使用以下查询..
SELECT DATE_FORMAT(NOW(), '%Y') - DATE_FORMAT(DOB, '%Y') - (DATE_FORMAT(NOW(), '00-%m-%d') < DATE_FORMAT(DOB, '00-%m-%d')) AS age from test where user_name = 'akshaynhegde';
Run Code Online (Sandbox Code Playgroud)
它工作并返回21岁.(这是我在终端运行查询时)
但是,当我在Drupal 6中使用以下代码时,它什么也没有返回...... !!
global $user;
$uname = $user->name;
$sql = "SELECT DATE_FORMAT(NOW(), '%Y') - DATE_FORMAT(DOB, '%Y') - (DATE_FORMAT(NOW(), '00-%m-%d') < DATE_FORMAT(DOB, '00-%m-%d')) AS age from test where user_name = '%s'";
$age = db_result(db_query($sql,$uname));
Run Code Online (Sandbox Code Playgroud)
我尝试了所有的可能性,如使用db_fetch_array()
,db_fetch_object()
并单独执行$result = db_query($sql,$uname)
,然后将$ result传递给db_result()
..
但没有工作..!为什么..????
好吧,仅供参考,其他简单的查询工作..例如以下,它的工作原理.
$sql = "select DOB from test where user_name = …
Run Code Online (Sandbox Code Playgroud) 我遇到了MKNetworkKit缓存的非常不寻常的问题.简单来说,问题是"它不起作用"..!
我创建了一个有问题的简单测试项目.该项目什么都不做,但只是向http://where.yahooapis.com/提出简单的GET请求,以获取城市名称的地址或信息.响应,应该在第一次运行时被追逐,并且从第二次调用完成处理程序两次,一次使用缓存响应,再一次使用获取的响应.正如您在下面看到的,它取自http://blog.mugunthkumar.com/coding/ios-tutorial-image-cache-and-loading-thumbnails-using-mknetworkkit/
如果您是第二次拨打电话,MKNetworkKit会使用缓存数据调用SAME完成处理程序.当网络连接正常时,MKNetworkKit会两次调用完成处理程序.首先使用缓存数据,然后在从服务器获取最新数据之后再次使用.
好吧,不寻常的是,我运行应用程序,它没有缓存,我再次运行应用程序,它再次没有缓存,经过一些随机运行突然缓存开始工作.我删除了应用程序并再次运行它,缓存不会工作,直到一些随机运行和问题重复..!
仅供参考,我使用了从GIT下载的最新MKNetworkkit .
我不确定我的代码是否有问题,或者是MKNetworkKit本身的错误.所以请仔细阅读代码,并告诉我它是否是导致此问题的MKNetworkKit.
以下是下载示例项目的链接[https://www.box.com/s/tsfw3z0avpti051xbyhv] 4
预先感谢.
ios ×5
ios5 ×2
calayer ×1
cashapelayer ×1
custom-cell ×1
ios6 ×1
mknetworkkit ×1
mysql ×1
sql ×1
swift ×1
swift2 ×1
swift3 ×1
uiimageview ×1
uitableview ×1